質問

I have this in one class:

if (people.count < 10)
    return false;

But count is undermarked with red saying Change the visibility of count to default

count is in another class as private. But I don't want to change it to default. I know it is a bad practice. How can I make it work without setter and getters?

役に立ちましたか?

解決

You can either change the visibility or expose a getter. Asking for another way to do this is literally asking, "how can I expose a variable without exposing it?" So, your call.

他のヒント

The field count is private because it's encapsulated in the class. You're not intended to access it other than through a non-private member of the class.

Changing its access to 'default' would be easy but harmful.

Accessing it through a number of hacks (reflection, native methods, ...) would be more complex and still harmful.

Exposing a getter is easy and appropriate.

if (people.getCount() < 10)
    return false;

You only have the two choices; change the visibility or use getters and setters. The advantage of using getters and setters is that it adheres to the principle of encapsulation which in Java is important.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top