编辑:我做了乔恩斯基特建议的改变,然后问题就消失了。我陷入这个问题是因为我习惯默认声明我的类为公共的。我是为其他正在做同样事情的人指出这一点。
// The internal class.
internal class JsonPetShelters
{
[JsonProperty("@encoding")]
public string Encoding { get; set; }
[JsonProperty("@version")]
public string Version { get; set; }
[JsonProperty("petfinder")]
public Petfinder Petfinder { get; set; }
}
// This method gets the inconsistent accessibility error since
// JsonPetShelters is an internal class.
public JsonPetShelters GetShelters()
{
// For example purposes only
return null;
}
解决这种情况最好的办法是什么?
您需要将jsonPetShelters
设置为公共的,或者将getShelters()
设置为内部的。
所以您希望能够从不同的程序集中调用此方法?如果是这样的话,在不理解返回类型的情况下,您将如何期望调用方使用它呢?如果不是,为什么方法是公开的?
internal JsonPetShelters GetShelters()
{
...
}
问题内容: 如果我有一个包私有的Java类(用“ class”声明,而不是“ public class”),那么将内部方法声明为public或protected或package- private确实没有区别,对吗?那么我应该使用哪个,或者什么时候该使用呢?我有点困惑。 问题答案: 如果我有一个包私有的Java类(用“ class”声明,而不是“ public class”),那么将内部方法声明为p
问题内容: 尝试在内部类内部使用一个类的本地成员时遇到此错误。我知道将其声明为final将解决此问题,但我读到Java 8应该自动处理它,因为我将Intellij与Java 8一起使用,但它仍然无法编译。还有其他方法可以在不将其声明为final的情况下进行修复吗?谢谢。 问题答案: 我知道将其声明为final将解决此问题,但我读到Java 8应该自动处理它。 如果变量 有效地为final ,则Ja
问题内容: 为什么我们不能对Java类的方法内部声明的变量使用访问说明符? 问题答案: 因为这没有意义。方法中声明的变量是该方法的局部变量。即它们不能在方法之外访问。修改变量的声明将实现什么?
问题内容: 在Java中,是否可以使用JDK库发现在另一个类中实现的私有类?还是我需要使用asm之类的东西? 问题答案: 就是答案。
我确实读过一些讨论内部类的主题,我的印象是内部类可以访问封闭类的变量和方法。下面我有一个外部类和一个内部类,在测试类中我创建一个外部类的实例,然后从它创建一个内部类的实例。但是,我无法通过内部类引用访问字符串变量a。帮忙?