草庐IT

修饰符

全部标签

java - 库开发中如何正确使用Java访问修饰符

我正在开发一个库,其他程序员将导入该库并将其用于他们的目的。我对Java访问修饰符的目标感到困惑。问题是我有下面的类ClassA包org.mylibraryClassB包org.mylibrary.internalClassA需要解析ClassB,所以ClassB需要是公共(public)类。但是,从图书馆用户的角度来看,我不希望ClassB在我的图书馆外可见。因为它不应该也不需要由用户发起。我想将ClassB移动到包org.mylibrary并使其成为包私有(private)类。如果我将它移动到同一个包中,这将是一团糟并且难以组织,因为在这种情况下我有很多类,所以在一个大包中会有很多

java - 哪些是 Java 注解中字段和方法的默认修饰符?

哪些是x和m的默认修饰符public@interfaceAnno{intm()defaultx;intx=10;}?我想上面的代码等同于:public@interfaceAnno{publicintm()defaultx;publicstaticfinalintx=10;}修饰符public和publicstaticfinal是多余的,但我没有找到官方解释。我在看这里:https://docs.oracle.com/javase/8/docs/technotes/guides/language/annotations.htmlhttps://docs.oracle.com/javase

17、Kafka ------ SpringBoot 整合 Kafka 发送 和 接收消息(使用 KafkaTemplate 发送消息 和 使用 @KafkaListener 修饰监听器来接收消息)

目录SpringBoot整合Kafka发送和接收消息使用KafkaTemplate发送消息1、配置自动创建主题(代码)2、发送消息(代码)1、controller2、service3、演示1、启动应用程序2、启动一个消息监听者3、发送各种消息发送不带key消息发送带key消息4、与KafkaTemplat有关的事务和消息转换器使用@KafkaListener修饰监听器来接收消息接收消息配置监听器的容器工厂单条消息的监听器批处理的监听器代码演示:1、配置文件:2、创建消息监听器3、结果演示1、监听方法不属于同一个组2、监听方法属于同一个组3、总结完整代码1、application.propert

java - 字节码中丢失变量 'final' 修饰符?

分析这个简单类的字节码后,我得出的结论是编译器不会保留有关局部变量为final的任何信息。不过这看起来很奇怪,因为我相信HotSpot编译器实际上可以使用这些信息来进行优化。代码:publicstaticvoidmain(String[]args){finalinti=10;System.out.println(i);}字节码:publicstaticvoidmain(java.lang.String[]);descriptor:([Ljava/lang/String;)Vflags:ACC_PUBLIC,ACC_STATICCode:stack=2,locals=2,args_siz

java - 访问修饰符(公共(public)、私有(private)、内部、 protected )的安全影响

实际做C#、Java等编程语言中类、属性或方法的访问修饰符对应用程序的安全性有影响吗?它们是否也以某种方式防止未经授权的访问?还是它们只是用于清晰和适当编程的工具? 最佳答案 不,访问修饰符不提供安全保护。它们只是为了方便开发人员而存在,例如它们有助于实现良好的编码实践并有助于编程模式。通过在Java/C#和其他语言中使用反射,可以很容易地访问其他无法访问的修饰符。 关于java-访问修饰符(公共(public)、私有(private)、内部、protected)的安全影响,我们在Sta

java - 检测在 Swing 中单击生成的 MouseEvent 上的 Shift 修饰符

我正在使用JavaSwing在GUI应用程序中处理一些MouseEvent。从现在开始我在mousePressed方法中分析鼠标事件,只是为了确定是否发生左键或右键单击。我的代码是:publicvoidmousePressed(MouseEventme){if(me.getModifiers==InputEvent.BUTTON1_DOWN_MASK){//leftclick}elseif(me.getModifiers==InputEvent.BUTTON3_DOWN_MASK){//rightclick}现在我的应用程序变得越来越复杂,我还需要检查鼠标左键单击时是否按下了Shift

java - Groovy 等价于 java 的没有访问修饰符的声明

所以,我可以在Groovy中声明一个类://groovy-codeclassPerson{}这相当于用java编写如下内容://java-codepublicclassPerson{}只是出于好奇..什么是groovy等同于用java编码的://java-codeclassPerson{}我的意思是,有没有一种方法可以通过在没有访问修饰符的情况下声明某些内容来实现我在Java中可以实现的相同目标? 最佳答案 由于Java中类的默认访问修饰符是“package-private”,我认为在Groovy中最接近相同行为的是使类成为“pac

c# - C# 与 Java 中的访问修饰符最佳实践

我了解OOD中的经验法则是尽可能合理地尽量减少对给定对象的所有成员的访问。C#和Java似乎都实现了同一组访问修饰符;然而,让我困惑了一段时间的是为什么Java类似乎大多被声明为公共(public)类,而C#类似乎大多被声明为默认类。这些语言是否有一些微妙之处强加了这些差异,还是仅仅是约定俗成的问题?我发现自己经常检查我的C#代码(我习惯性地公开大多数类,内部类、匿名类和其他范围窄且有用的类除外)以试图取悦编译器,但我想知道我是否可以缺少一些重要的东西。 最佳答案 我想您已经回答了您的问题。按照JoshuaBloch的说法,“经验法

java - getModifiers() 方法如何计算多个修饰符的值?

getModifiers()的Java文档如下:intgetModifiers()ReturnstheJavalanguagemodifiersforthememberorconstructorrepresentedbythisMember,asaninteger.TheModifierclassshouldbeusedtodecodethemodifiersintheinteger.和JavaDocs也提供了listofdifferentmodifiersandtheircorrespondingintvalues:publicstaticfinalintABSTRACT1024pu

java - public 修饰符对 Java Thread 的 run() 的好处

有没有人了解JavaThread类的run()方法公开的历史?几乎所有时候,它都会被覆盖使用,因此protected修饰符会更合适吗?这仍然会将start()作为用户的公共(public)api,因此不会为用户意外调用run()的错误留下任何空间。 最佳答案 Thread实现Runnable,它定义了run()方法,所以它必须是公开的。但由于Java1.5建议使用Executorsservices而不是java.lang.Thread。执行器将要执行的工作单元(Runnable、Callable)与实际执行器解耦。(对于Thread