java var快捷方式

img


IDEA new一个类时,用var快捷方式,前面包名也自动引入,怎么解决不要包名?

是不是已经引入过一个B类和当前不是同一个包的

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/187101
  • 这篇博客你也可以参考下:关于java编程中,var的用法
  • 除此之外, 这篇博客: Java语法糖中的 var类型 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    Java 10推出var:局部变量推断

    • 避免信息冗余
    • 对齐了变量名
    • 更容易阅读
    • 本质上还是强类型语言,编译器负责推断类型,并写入字节码文件。因此推断后不能更改!!!

    var的限制:

    • 可以用在局部变量上,非类成员变量
    • 可以用在for/for-each循环中
    • 声明时必须初始化
    • 不能用在方法(形式)参数和返回类型
    • 大面积滥用会使代码整体阅读性变差
    • var只在编译时起作用,没有在字节码中引入新的内容,也没有专门的JVM指令处理var。
    import java.io.*;
    import java.net.*;
    
    public class VarTest {
    
    	public static void main(String[] args) throws Exception {
    		var b1 = 5;
    		var b2 = 0.25;
    		var b3 = "abc";
    		var b4 = new URL("https://github.com/");		
    		
    		//var b0;              //error
    		//b3 = 5;              //error
    		//var b5=5,b6=6,b7=7;  //error
    		//var b8=null;         //error
    		
    		int[] nums = new int[3];
    		//var nums2 = {0,1,2};  error
    		for(var i=0;i<nums.length;i++)
    		{
    			nums[i] = i*2;
    		}
    		for(var i:nums)
    		{
    			System.out.println(i);
    		}
    		
    		//var可以和三元操作符配合
    		var a5 = a1>b1? 10:15;
    		var b5 = a1+2<=b1? a1+10:b3;
    		System.out.println(b5.getClass().getName());	
    		
    		//var对继承有效
    		//子类型var可以赋值给父类型的var
    		var obj1 = new Father();
    		var obj2 = new Son();
    		obj1 = obj2;  
    	}
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^