草庐IT

name-binding

全部标签

java - java中的 "invoking a static method with class name"和 "invoking a static method with an object"有什么区别吗?

在java中我们可以“用类名调用一个静态方法”也可以“用一个对象调用一个静态方法”java中“用类名调用静态方法”和“用对象调用静态方法”有什么区别? 最佳答案 没有区别,但建议以静态方式调用static方法,即使用ClassName。如果不这样做,静态分析仪通常会报告错误。这里要理解的重要一点是static方法是无状态的,因此使用实例调用它们会使阅读您的代码的人感到困惑。因为无论您使用什么实例调用static方法,结果都将保持不变。这是因为static方法属于类而不属于对象。 关于ja

java - 拦截器绑定(bind)不起作用

我创建了一个自定义注释,如下所示@InterceptorBinding@Retention(RUNTIME)@Target(TYPE,METHOD)public@interfaceTraceable{}我写了一个如下的拦截器@Traceable@InterceptorpublicclassEnterExitLogger{@AroundInvokepublicObjectaroundInvoke(InvocatiobContextc){}}拦截器和注释位于名为common-utils的模块中。我在类级别用@Traceable注释了我的目标类,如下所示@Traceablepubliccla

java - Spinner<Integer> 绑定(bind)到 IntegerProperty

我想使用FX8Spinner控件,但我想将源绑定(bind)到IntegerPropertyintMIN=0;intMAX=5000;intSTEP=500;IntegerPropertyintegerProperty=newSimpleIntegerProperty();Spinnerspinner=newSpinner(MIN,MAX,STEP);我知道绑定(bind)是通过绑定(bind)到valueProperty来设置的在值(value)工厂。然而,这需要Property我找不到在IntegerProperty之间转换的方法和Property.显然下面会产生一个编译器错误:s

java - 使用 Spring Cloud Stream 将 RabbitMQ 消费者绑定(bind)到现有队列

我使用RabbitMQ网络用户界面创建了一个主题交换TX并绑定(bind)到交换两个队列TX.Q1和TX.Q2,每个都与路由键rk1和rk2相应地绑定(bind),并向交换生成少量消息。现在我想使用SpringCloudStream创建一个消费者,它只会从Q1获取消息。我尝试使用配置:spring.cloud.stream.bindings.input.destination=TXspring.cloud.stream.bindings.input.group=Q1以及消费消息的方法的注解@StreamListner(Sink.INPUT)。结果我可以看到消费者创建了一个同名队列(或绑

java - hibernate 查询 : positioned parameter and named parameter

HibernateQuery中有两种类型的查询参数绑定(bind)。一种是定位参数,另一种是命名参数。我可以在一个查询中使用这两个参数吗? 最佳答案 当然可以,只要您确保所有位置参数都在任何命名参数之前。这是一个例子:Queryq=session.createQuery("selectufromUseruwhereu.location=?andu.idin(:user_ids)");q.setParameter(0,location);q.setParameterList("user_ids",userIds);returnq.li

javax.mail.MessagingException : Could not connect to SMTP host : <host name> port : 25 response: 554

我正在尝试使用javamailapi发送邮件。我的smtp服务器是ibm服务器。我正面临这个异常(exception)javax.mail.MessagingException:CouldnotconnecttoSMTPhost:port:25response:554请帮助我。提前致谢。 最佳答案 您收到错误代码554:AccessDeniedRelay。这可能是因为您的SMTP服务器无法识别您的请愿书是合法的,并像垃圾邮件一样阻止它。也许您的发件人帐户与服务器预期的域不匹配,或者您需要向您的SMTP连接添加一些额外的验证参数(如果

java - Thread.setName(name) 注意事项

我有一个使用套接字的多线程客户端服务器应用程序。当找到新的连接时,进一步的执行将转移到使用新的Executors线程池的新线程。我想在该客户端的所有日志语句中记录客户端ID。问题是我不想仅仅为了传递客户端ID而修改方法签名。我想到的解决方案是:使用ThreadLocal来保存客户端值。在run()中,我可以使用Thread.currentThread().setName(clientId);将客户端ID设置到线程中;第一个应该可以。但我喜欢第二种选择,因为一种。我可以从调试器中找到客户端IDb.记录器库可以配置为显示线程名称。因此不需要对日志语句进行任何更改,它也适用于库内的记录器。除

java - 在 Eclipse RCP 应用程序中数据绑定(bind)列表的最佳实践

我无法理解我的EclipseRCP应用程序中的数据绑定(bind)。我只是不知道它应该如何工作..这是我想做的我有一个View,其中应显示文本列表。文本“存储”在一个简单的List中这是通过单例提供的(仅用于演示目的;))。所以无论谁使用ListProvider将获得文本列表。当列表更改时,我希望我的View自动更新表格内容。这是我到目前为止所做的我的列表提供商是一个Observable这将在列表更改时通知观察者。在我看来,我创建了一个观察者来观察列表提供者,当观察者收到通知时,我刷新了我的观点。ListProvider的代码:publicclassListProviderextend

java - user.name 可以被欺骗吗

要在Java程序中获取当前用户的名称,您可以simplyfetchthevalueoftheuser.namesystemproperty:System.getProperty("user.name");但这有多安全?对于常见的运行时环境,执行程序的用户是否可以轻松地将此属性设置为任意值(例如,使用JVM的命令行参数)?用户能否轻易伪造此用户名?我问是因为我正在编写一个任何人都可以运行的命令行程序,但只有当用户是特殊管理用户时才允许进行一些特权操作。请注意,由于Java11user.name属性仅在程序启动后有效读取,因此恶意程序代码无法欺骗它。 最佳答案

java - Java中静态绑定(bind)和动态绑定(bind)的问题

我阅读了一些关于Java中的静态绑定(bind)和动态绑定(bind)的文章。我有以下问题(我搜索了很多但还没有找到任何提及):例如,我有以下几行代码:Persona=newStudent();//StudentisasubclassofPersona.speak();我们已经知道的是,在编译时,编译器会检查Personspeak()的方法定义并在存在时调用它。并且在运行时,它将调用a指向的实际对象的speak()方法(此中的实际对象case显然是Student)所以我的问题是为什么它不直接调用Student类的speak()方法在编译时,而是等待直到运行时才能做到这一点?这背后有什么