是否有可能将我自己的课程纳入第三方套餐?

时间:2017-02-24 07:02:25

标签: java package packages

让我们说在我自己的项目中,我使用名为// MyOwnClass.java package com.3rdparty.foo; import com.3rdparty.foo.Bar; public class MyOwnClass { public int hackPPField (Bar b) { return b.ppField; } } 的第三方软件包,在该软件包中有一个包含私有字段的类:

return foo

现在我意识到包私有字段不应该在该包之外访问。但是,出于好奇,技术上可以编写我自己的类并将其归因于第三方包,例如,绕过包私有字段保护:

function foo() {}

我希望这在技术上是不可能的。但是,如果确实如此,那么我想知道封装密封的确切机制,这会阻止您随意扩展第三方软件包。

1 个答案:

答案 0 :(得分:1)

是的,在一般情况下完全可能。你的类和包中的其他类必须由同一个类加载器加载,如果我没有弄错的话,你不能把类放在某些包中(java.lang,例如;事实上,我认为它是所有java.个软件包),但在一般情况下,您的类与com.3rdparty.foo中的其他类没有任何区别。