谷歌浏览器中Java Doc无法弹出新标签页
问题描述
- JDK9之后Java DOC支持搜索功能
- 在其他浏览器中点击搜索结果可以弹出新标签页.
- 但是在谷歌浏览器中弹出的新标签页被拦截了
现在来介绍如何设置不拦截java doc中的弹窗
谷歌浏览器 设置允许弹窗的网站
在 设置中 进入 弹出式窗口和重定向
- 打开设置,在左侧进入高级,然后进入隐私设置和安全性,进入网站设置.
- 或者直接搜索:弹出式窗口和重定向,然后进入进入网站设置.
拖动右侧的滚动条,找到弹出式窗口和重定向
添加 允许弹窗的网站的 域名
然后添加允许即可,设置的时候指定网站的域名即可,如:docs.oracle.com
error bad signature 0x00000000
error: bad signature 0x00000000
问题描述
今天在写git commit
的时候,电脑突然蓝屏了,重启后输入git status
显示如下错误信息
1 | lan@DESKTOP-8ISAT6B MINGW64 /e/Blog/blogRoot (src) |
解决方案
先删除index
1 | rm -f .git/index |
然后再重新创建index
1 | git reset |
运行效果:
1 | lan@DESKTOP-8ISAT6B MINGW64 /e/Blog/blogRoot (src) |
参考资料
https://www.cnblogs.com/linga/p/10214955.html
https://www.jianshu.com/p/58f306f0b8c5
Java反射获取方法的返回值类型名称
获取方法的返回值类型
方法 | 描述 |
---|---|
Type getGenericReturnType() |
返回表示返回值类型的Type对象 |
Class<?> getReturnType() |
返回表示返回值类型的Class对象 |
这两个方法的区别主要是在返回值类型上:
-Type
是一个接口
-Class
是一个Type
接口的子类.
-Type
接口只有一个方法
-Class
类方法比较多
Type接口方法
方法 | 描述 |
---|---|
default String getTypeName() |
Returns a string describing this type, including information about any type parameters. |
这个方法会返回返回值类型的全限定名,如:
-java.lang.String
-void
Class类获取类名方法
方法 | 描述 |
---|---|
String getName() |
Returns the name of the entity (class, interface, array class, primitive type, or void) represented by this Class object, as a String. |
这个方法也会返回类的全限定名,和上面的一样.
获取方法的返回值类型名称
所以如果想获取一个方法的返回值类型的名称,使用如下两种方式都可以:
method.getReturnType().getName();
method.getGenericReturnType().getTypeName();
封装成方法
1 | public static String getMethodReturnTypeName1(Method method) { |
程序示例
1 | package returntype; |
测试类:
1 | package returntype; |
运行结果:
1 | 方法名:returnVoidMethod 返回值类型1:void 返回值类型2:void |
VSCode代码比较功能
问题描述
今天看书的时候,书上讲一段代码改成另一段代码,但是由于注释也改了,代码又比较多,肉眼难以看出来到底修改了哪个地方.
想起来VScode有代码比较的功能,可以帮助我看出到底就该了哪里.
这两段代码如下:
代码段1:
1 | //下面代码编译时有“ [unchecked]未经检査的转换”警告 |
代码段2:
1 | // 下面代码实际上是不允许的 |
使用VSCode代码比较步骤
首先,为了杜绝注释的干扰,先将所有的注释删除掉,然后用VSCode中打开一个文件夹,在该文件夹下,创建两个文件来着分别两段代码.
然后在VSCode中打开这两个文件,在左侧打开的编辑器中按下shift键选择这两个文件,然后鼠标右键选择将已选项进行比较即可:
这样就知道两个文件哪里不同了:
参考资料
Git 恢复某一文件到指定版本
问题描述
今天我查看之前的写的文章的时候我发现'批处理 for命令.md'
这批文章中的大部分内容都丢失了,应该是我写的文件处理程序出bug造成的,不过幸好有版本控制,只要将该文件恢复到文件处理程序
操作之前的状态即可.
查看某个文件的commit记录
格式:
1 | git log --pretty=oneline 文件路径 |
例如:先cd到'批处理 for命令.md'
这个文件所在的目录,然后输入如下命令,查看该文件的提交记录.
1 | git log --pretty=oneline '批处理 for命令.md' |
1 | lan@DESKTOP-8ISAT6B MINGW64 /e/Blog/blog/source/_posts/Windows/CMD 批处理/语法/构建程序相关命令 (master) |
比较两个版本之间文件的不同
1 | git diff commit_id1 commit_id2 -- 文件名 |
注意这两个commit_id的顺序不同显示不同.commit_id1应该为更久远的版本,commit_id2应该为更近的版本.
所以格式简化为:
1 | git diff 旧版本commit_id 新版本commit_id -- 文件名 |
因为我不知道什么时候文件内容丢失的,所以从最久远的版本开始,一级一级的向上比较,看看究竟是哪个版本出现的问题.
先来比较4a7e71d88e版本(倒数第二久远版本),对b8abfe5249(最久远版本)做了哪些修改:
1 | git diff b8abfe5249 4a7e71d88e -- '批处理 for命令.md' |
运行效果:
1 | lan@DESKTOP-8ISAT6B MINGW64 /e/Blog/blog/source/_posts/Windows/CMD 批处理/语法/构建程序相关命令 (master) |
可以看到就是倒数第二久远版本(4a7e71d88e)中,我的文章内容被删除掉了.所以我只要将该文件恢复到最久远版本(b8abfe5249)就可以恢复丢失的文章内容.
取出指定版本的文件
1 | git checkout commitId 文件路径 |
现在取出最久远版本的文件’批处理 for命令.md’:
1 | git checkout b8abfe5249 '批处理 for命令.md' |
然后查看该文件内容:
1 | cat '批处理 for命令.md' |
如果需要修改,那就修改,确认无误后再:
1 | git add . |
添加到版本库中即可.
java中Sources目录Resources目录的区别
什么是Sources目录
Sources目录用来存放java文件.java项目中最常见的Sources目录就是src目录,当打包成jar时,Sources目录下的.java文件会被编译成.class文件.
什么是Resources目录
Resources
目录用来存放程序需要使用的资源文件.当打包成jar
时,会直接复制Resources
目录下的所有文件到jar
包中,也就是说Resources
目录下的.java
文件不会不会被编译成.class
文件.
所以这个目录可以用来存放一些java模板文件,例如将各种排序算法的java文件放在其中,然后写个程序根据命令行参数,输出这里面的java模板文件。
相同点
都会被打包到jar包中.
不同点
Sources
目录下的.java
文件会被编译成.class
文件.Resources
目录下的.java
文件不会被编译.