`
hezhiyu
  • 浏览: 62993 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

反射是否破坏了java的封装性?

    博客分类:
  • java
阅读更多
今天看又看了反射,突然想到,反射是否破坏了java的封装性?网上查了查,觉得这个网友说的有道理:
引用
封装性是指对外隐藏对象的属性和实现细节,仅对外提供公共的访问方式。反射是通过对象找到类,既然找到类了,那么我们就可以得到这个类的成员结构了,例如这个类的属性和方法,即使是private的也能得到,你想,现在这个类我都得到了,那么这个类中的所以东西我肯定是都得到了,我现在只是得到了这个类的成员,并没有说是在外部访问这个类的private的东西。这并没有破坏面向对象的封装性。

-------------------------------------------------------------
今天又有了不同的理解:
引用
引用

  今天看到问答里有人发了一个关于反射的问题,是如何利用反射来获取类的私有构造函数并进行类的实例化的,由此想到Java提供private关键字就是用来控制类的成员变量和方法在外部无法可见,那么使用反射能够获取到类的私有构造函数,成员变量和方法,并对其进行操作,那么这样做是否破坏了程序的封装性呢?



给你孩武不是让你用的。。。。。。而是用来唬人的

哈哈,严重的顶,这的确是Java里的核武
但是当对象封装不合理的的时候,迫不得已还是要用的,哈哈

就像当年的日本,迫不得已的时候还是要放几颗试试的

-------------------------------------------------------------
就想上面所说,如果封装性不好的话,就可以用反射的来直接访问私有变量,比如类的私有变量没有相应的set方法,呵呵,就可以暴力一下!
分享到:
评论

相关推荐

    反射实例-JAVA反射机制

    - **安全性问题**:可能破坏封装性,导致安全漏洞。 - **可读性**:使用反射的代码可能难以理解和调试。 #### 四、反射的应用场景 Java反射机制在许多场景下都有广泛的应用: - **框架设计**:Spring框架利用...

    反射实例-JAVA反射机制.doc

    2. 安全风险:反射可以访问私有成员,可能破坏封装性,增加代码的不安全性。 3. 难以调试:反射代码通常较复杂,使得问题定位和调试变得困难。 总结,Java 反射机制是一种强大的工具,能够提升程序的灵活性和可扩展...

    java 反射得到某个方法

    此外,反射可以访问私有成员,这可能会破坏封装性,增加代码的不安全性。 总结一下,Java反射机制为我们提供了在运行时检查和操作类、方法的能力。通过`Class.forName()`获取Class对象,再利用`getMethod()`获取...

    java反射.pdf

    反射允许我们访问类的私有属性,这在某些场景下非常有用,但同时也破坏了封装性。 1. **获取属性**: - 使用`getDeclaredField(String fieldName)`方法获取指定名称的字段。 - 对于私有字段,需要调用`...

    java反射,获取所有属性、方法以及List集合类

    这需要谨慎使用,因为可能破坏封装性。 ```java field.setAccessible(true); field.set(obj, newValue); ``` 总结来说,Java反射提供了一种动态操控Java对象的能力,允许我们在运行时发现和改变类的行为。虽然...

    java中反射的概念

    此外,反射可能会破坏封装性,过度使用可能导致安全风险和难以维护的代码。因此,在使用反射时需要谨慎,尽量限制其使用范围,并确保在必要时才使用。 总的来说,Java反射机制是面向对象编程的一个重要补充,它扩展...

    java的类反射

    2. 访问私有成员:反射可以绕过访问控制,直接访问私有字段和方法,但需谨慎使用,避免破坏封装性。 3. 实现通用方法:例如,集合框架中的`Arrays.toString()`方法就是通过反射来打印数组内容。 4. 动态代理:Java的...

    java反射源代码

    2. 安全风险:反射可以访问私有成员,可能破坏封装性,增加代码的不稳定性。 3. 代码复杂性:过度使用反射会使代码变得难以理解和维护。 五、源代码学习 对于学习Java反射,阅读和理解相关的源代码是非常有益的。...

    JAVA 反射机制应用

    安全性问题,反射可以访问私有成员,可能破坏封装性;编译器无法检查反射代码的错误。 7. **注意事项** - 使用反射时应尽量避免对性能敏感的代码,因为它涉及类加载、查找方法等操作,相对普通代码执行速度较慢。 ...

    JAVA反射详细讲解

    4. 注意安全性:对敏感操作进行权限检查,防止恶意代码通过反射破坏系统。 总结,Java反射是Java语言的一个强大特性,它提供了运行时分析和操作类的能力,极大地拓展了Java的灵活性。然而,使用反射也需要谨慎,...

    Reflection_in_Java.zip_in_java 反射_java 反射机制_java反射_反射机制

    但这应谨慎使用,因为可能会破坏封装性和安全性。 侯捷先生是一位著名的Java技术专家,他的"流星絮语"系列教程深入浅出地讲解了Java反射机制。通过他的学习笔记,我们可以更深入地理解如何在实际项目中应用反射,...

    Java反射简单例子

    然而,由于反射操作可能会破坏封装性,因此在实际开发中应谨慎使用,避免引入安全风险和性能问题。学习并理解反射机制,可以帮助我们更好地掌握Java的灵活性,并在某些场景下实现更高效、更通用的解决方案。

    JAVA反射机制

    - **安全问题**:反射可能破坏封装性,导致潜在的安全漏洞。 - **代码可读性和维护性降低**:大量使用反射可能导致代码难以理解和维护。 #### 五、结论 反射是JAVA的一个重要特性,它为开发者提供了在运行时操作类...

    JAVA反射简单例子

    - 反射可能会破坏封装性,应合理控制其使用范围。 通过以上讲解,我们可以看到Java反射虽然强大,但也需要谨慎使用。在理解了反射的基本原理和用法后,开发者可以灵活应对各种复杂场景,如动态加载类、处理未知...

    java反射机制详解

    ### Java反射机制详解 #### 一、反射机制是什么 ...然而,使用反射也需要注意性能开销和安全性问题,因为反射操作通常比直接调用慢,并且可能破坏封装性。在实际开发中,应根据具体需求谨慎使用反射。

    Java反射机制Demo

    虽然Java反射机制功能强大,但在实际开发中应谨慎使用,因为它可能破坏封装性,降低程序的可读性和可维护性,还可能带来安全性和性能问题。在非必要情况下,避免使用反射机制,优先考虑其他设计模式和编程技巧。 ...

    Java中的反射

    同时,由于反射可能破坏封装性,应尽量限制其使用范围,避免过度依赖。 10. **最佳实践**: 在使用反射时,尽量先判断目标类、方法或字段是否存在,避免空指针异常。在调用私有方法或访问私有字段时,要确保操作的...

    java反射机制PPT

    此外,由于反射可以访问私有成员和调用非公开的方法,如果不加以控制,可能会破坏封装性,增加代码的复杂性和潜在的安全风险。 代理模式是设计模式中的一种,主要用来在不修改原有对象的情况下,为对象添加额外功能...

    java 反射机制例子

    2. **安全性问题**:反射可以访问私有成员,这可能破坏封装性和安全性。 3. **可维护性**:过度使用反射会降低代码的可读性和可维护性。 #### 六、总结 Java反射机制是Java语言的一项重要特性,它使得程序能够在...

    java反射原理详解

    使用反射可能会破坏封装性,增加代码复杂性,降低程序性能(因为反射操作比直接调用方法慢)。因此,在生产环境中应谨慎使用,尽量避免过度依赖反射。 9. **设计模式应用**:反射机制在一些设计模式中得到应用,如...

Global site tag (gtag.js) - Google Analytics