java中其他包中的静态导入用户定义包
还有一个问题:java中其他包中的静态导入用户定义包,java,jakarta-ee,Java,Jakarta Ee,还有一个问题: package p1; public class Temp { public static int x=10; public static void show(){ System.out.println("hello from show"); } } 这是我的第二个文件的代码: package p2; import p1.*; import static java.lang.System.*; class StaticImport {
package p1;
public class Temp {
public static int x=10;
public static void show(){
System.out.println("hello from show");
}
}
这是我的第二个文件的代码:
package p2;
import p1.*;
import static java.lang.System.*;
class StaticImport {
public static void main(String[] args) {
System.out.println(Temp.x);
Temp.show();
out.println(Temp.x + "hello");
}
}
现在该程序正在运行,输出为:
10
hello from show
10hello
我尝试将一个用户定义的包导入到另一个包,并且设置了我的类路径。Java规则规定,当使用import静态类时,所有方法和数据成员都可以在不使用类名的情况下访问
package p2;
import static p1.Temp;
import static java.lang.System.*;
class StaticImport {
public static void main(String[] args) {
System.out.println(x);
show();
out.println(x + "hello");
}
}
我犯了这个错误。为什么我不能将用户定义的包导入另一个包
C:\java\static_import>javac -d . StaticImport.java
StaticImport.java:3: error: cannot find symbol
import static p1.Temp;
^
symbol: class p1
StaticImport.java:3: error: static import only from classes and interfaces
import static p1.Temp;
^
StaticImport.java:8: error: cannot find symbol
System.out.println(x);
^
symbol: variable x
location: class StaticImport
StaticImport.java:9: error: cannot find symbol
show();
^
symbol: method show()
location: class StaticImport
StaticImport.java:10: error: cannot find symbol
out.println(x + "hello");
^
symbol: variable x
location: class StaticImport
5 errors
使用
导入静态p1.Temp.*代码>取而代之。您尝试导入的静态对象不在p1
包中,而是在p1.Temp
类中
评论后编辑:
在C:\java\static\u import
文件夹中,您必须:
- 包含
Temp.java
文件的p1
文件夹李>
- 包含
StaticImport.java
文件的p2
文件夹
在StaticImport.java
中,替换import static p1.Temp代码>行方式导入静态p1.Temp.*代码>
最后,使用命令行:
cd C:\java\static\u导入
javac-d。p2/StaticImport.java
JavaP2/StaticImport
输出必须是:
10
你们好,节目组
你好
您正在尝试导入包p1中的所有静态类,但是Temp不是静态的,因此它不会被导入。只需使用非静态导入。只有类型可以通过静态导入,而不是包导入。您好,谢谢您的回答,但在更改代码后,导入静态p1.Temp.*;程序不工作,请给我一些例子please@anil“不工作”是什么意思?在StaticImport.java
文件中,替换了import static p1.Temp代码>行方式导入静态p1.Temp.*代码>,对吗?@anil“程序不工作”不是很有描述性。请说明发生了什么错误。抱歉,更改导入静态p1.Temp;不working@anil什么不起作用?您收到了什么错误消息?如果你想让我们帮助你,你必须提供更多的细节。