java – Eclipse不允许从另一个工作区访问外部jar中的静态接口方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Eclipse不允许从另一个工作区访问外部jar中的静态接口方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1374字,纯文字阅读大概需要2分钟。
内容图文
![java – Eclipse不允许从另一个工作区访问外部jar中的静态接口方法](/upload/InfoBanner/zyjiaocheng/819/d4416408601545beb2bac6b6f245a886.jpg)
>有两个eclipse工作区,Workspace A和Workspace B.
>在Workspace A中,有一个项目带有定义公共静态方法的接口:
package workspacea;
public interface Foo {
public static String sayHello() {
return "Hello, world!";
}
}
>然后,我使用导出→Java→JAR文件和默认设置将整个项目从Workspace A导出到* .jar-File.
>在Workspace B中,类应该访问先前定义的静态方法:
package workspaceb;
import workspacea.Foo;
public class Bar {
public static void test() {
String msg = Foo.sayHello();
}
}
>使用项目属性→Java构建路径→库→添加外部JAR,将以前从Workspace A导出的* .jar添加到Java构建路径中…
执行完这些步骤后,行Foo.sayHello();不编译:
Unresolved compilation problem:
This static method of interface Foo can only be accessed as Foo.sayHello
根据我的理解,它应该编译(它完全可以识别Foo界面).有趣的是,如果两个项目都位于同一个工作区(仍然使用* .jar库而不是项目依赖项),它编译得很好.
Eclipse提供了一个快速修复,它没有任何效果(至少没有代码).
这里发生了什么?为什么代码不能编译?这是Eclipse的错误吗?如果是这样,是否有解决方法?
我正在使用Luna Service Release 2(4.4.2)Build 20150219-0600,并在工作区A中使用Java 8,在Workspace B中使用Java 7.
附加说明:我只能通过使用界面重现这一点.使用抽象类和相同的方法工作.
解决方法:
这个问题是由在Workspace B中使用Java-8之前版本引起的.在Eclipse或Java中没有错误,Java 7及以下版本只是不支持接口中的静态方法. Java只是给出了一个误导性的错误,即可以引用静态方法,即使它在技术上不能像Java 7或更低版??本中那样可用.
内容总结
以上是互联网集市为您收集整理的java – Eclipse不允许从另一个工作区访问外部jar中的静态接口方法全部内容,希望文章能够帮你解决java – Eclipse不允许从另一个工作区访问外部jar中的静态接口方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。