我有一个问题: 我必须为我的学习创建一个项目。在要求中,我有一个信息,即应该在两个文件A.java和B.java中创建整个项目。
项目的问题很复杂,所以我创建了一些名为e.x的有用类。我的课。我把这个类放在A.java中 - 我不能使用另一个文件。
现在我的A.java看起来像那样:
public class A {
// some logic
}
final class MyClass implements Comparable<MyClass> {
//some logic
}
在B.java中,我正在使用MyClass的对象,一切正常。
问题在于项目的第二个要求。 自动编译 - 在我将项目发送到我的大学之后 - 开始这样的过程:
javac -Xlint B.java A.java
编译成功,但我有一些警告:
B.java:17: warning: auxiliary class MyClass in A.java should not be accessed from outside its own source file
private MyClass variable;
第三个要求是,如果您有任何警告或错误,您的项目将不会被评估。如果警告出现,我将失败我的项目。
我知道将两个类存储在一个文件中是非常愚蠢的,但这是不利的 - 这里一切都很愚蠢......
那么 - 是否有任何解决方案可以在使用javac进行编译时关闭警告? 我试过这个:
@SuppressWarnings("all")
final class MyClass implements Comparable<MyClass> {
但它不起作用 - 我仍然收到警告......
有什么想法吗? :)
答案 0 :(得分:3)
将MyClass
放入A
:
public class A {
// some logic
static final class MyClass implements Comparable<MyClass> {
//some logic
}
}
并从另一个文件中将其称为A.MyClass
。
或者导入它(假设A
不在默认包中),并将其称为MyClass
。
或者在自己的文件中定义它将是显而易见的选择;但是你说你做不到。