混合 Java 5.0 和 Java 6.0 代码
我有一个在 java 5.0 下开发的模块
package mypack;
class MessageParser {
public MessageParser(String s) {
......
}
}
我有另一个在 java 6.0 下开发的模块
import mypack;
......
String str = someString;
MessageParser parser = new MessageParser(str);
......
但我收到了错误 “找不到符号构造函数 MessageParser(java.lang.String)”
顺便说一句:我使用的 IDE 是 intellij idea
谁能告诉我为什么以及如何让它工作?
I have one module developed under java 5.0
package mypack;
class MessageParser {
public MessageParser(String s) {
......
}
}
I have another module developed under java 6.0
import mypack;
......
String str = someString;
MessageParser parser = new MessageParser(str);
......
But I got the error
"cannot find symbol constructor MessageParser(java.lang.String)"
BTW: the IDE I am using is intellij idea
Could anyone tell me why and how to get it work?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这和Java5-6关系不大。
可能您的类路径中有不同的版本。
仔细检查您在 Java 6 代码中使用的 jar/文件,并三次检查它是否与您在 Java 5 版本中看到的相对应。您很可能看到的是没有构造函数的旧版本。
This has little to do with Java5-6.
Probably you have a different version in your classpath.
Double check what jar/file you're using in your Java 6 code, and triple check it correspond to the one you're seeing in you Java 5 version. Mostlikely you're seeing an old version which didn't have the constructor.
这个问题与java版本无关,但我认为你正在尝试再次编译第二类旧版本的第一类,它不包含带有一个字符串参数的构造函数。
This problem has nothing to to with java version, but I think you're are trying to compile second class agains a old version of first class, which does not contain the constructor with one string arg.
这与 Java 版本无关,而是与您尝试连接“模块”的方式有关 - 这些是如何定义的?作为 JAR 文件?您使用 IDE 吗?
首先,
import mypack;
不会导入mypack
中的任何类。您要么还必须列出该类,要么使用通配符:或
This has nothing to do with the Java version, but with the way you're trying to connect your "modules" - how are these defined? As JAR files? Are you using an IDE?
Well, first of all,
import mypack;
will not import any classes inmypack
. You either have to list the class as well or use a wildcard:or