问题标签 [static-binding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 编译时链接和运行时链接有什么区别?
我目前正在读一本书并坚持以下代码:
请查看注释行。
这本书继续说“重申一下,编译器只查看引用类型,而不是实例类型”。真的吗?如果是这种情况,两者a.eat()
和b.eat()
都会产生相同的结果,因为它们 (a
和b
) 具有相同的引用类型(即Animal
)。
对我来说,这似乎是编译时绑定,因为尚未使用 virtual 关键字,但在书中结果是运行时绑定。在这一点上我很困惑。任何帮助将不胜感激。
java - 令人困惑的java代码 - 与静态绑定相关
关于这段代码的一些事情让我感到困惑。第一个打印行是 1600。我知道这与静态类是 Car 而不是 Sportscar 有关。但是我们将对象创建为跑车,那么为什么体积字段不是 3500?谢谢。
java - 在 Java 中何时使用静态绑定以及何时使用动态绑定?
最近我正在学习如何使用 Slf4j。我知道两个新概念:静态绑定和动态绑定。在 JCL(Jakarta Commons Logging)中,它使用动态绑定来选择实现,而 Slf4j 使用静态绑定。在这种情况下,我们知道 Slf4j 更明智。但是其他情况呢?
如果遇到一个问题,使用静态绑定和动态绑定都可以解决,那我们该如何选择呢?有什么基本规则吗?
我的英语不是很好。所以我不确定我是否说清楚了。如果您有更多问题,请发表评论。
谢谢。
java - Tomcat 中的静态绑定多个 SLF4j 绑定
我有一个使用 Spring Boot 部署的 gradle java 项目。当我使用我的 jar 文件启动 Spring-Boot 时,我收到以下警告:
SLF4J:类路径包含多个 SLF4J 绑定
SLF4J:在 [apache-tomcat-8.0.23/lib/activemq-all-5.11.1jar!/org/slf4j/impl/StaticLoggerBinder.class 中找到绑定
SLF4J:在 [apache-tomcat-8.0.23/webapps/ProjectName/WEB-INF/lib/activemq-all-5.11.1jar!/org/slf4j/impl/StaticLoggerBinder.class 中找到绑定
SLF4J:实际绑定的类型为 [org.slf4j.impl.Log4jLoggerFactory]
为了消除这个绑定警告,我进入了我的 gradle 打包器项目,该项目为 Spring-Boot 创建了 jar 文件,并做了一个dependencyInsight来跟踪 activemq-all jar 并替换为这里解释的底层 jar 。
我在我的项目中找到了这个 activemq-all jar 的一个实例:
我进入了这个项目。用上面链接中显示的相应 jar 替换了 activemq-all 依赖项(因此 slf4j-log4j12 不包含在 uber jar 中)。再次构建项目,使用我创建的新 jar 更新我的缓存,然后重新运行创建我的 war 文件的打包程序项目。但是,activemq-all jar 仍然存在。我可以从我的缓存中本地删除它,但在 gradle 刷新时它会被替换。有没有一种特殊的方法可以从我的项目中删除这种传递依赖,以便我可以解决这个绑定问题,或者我在从我的项目中删除依赖时有什么误解?我觉得dependencyInsight 没有正确映射我的activemq-all jar 的依赖项。
如果您需要更多信息,请告诉我。
java - 具有重载和覆盖的 Java 方法选择
我很难理解一些关于覆盖和重载的原则。
我知道这 public void stampa(Square q)
是超载 public void stampa(Figure f)
而不是覆盖它。
并且 public void stampa(Rectangle r)
并且 public void stampa(Figure f)
也在重载 public void stampa(Square q)
。
同样public void stampa(Square q)
在 Rectangle 类中覆盖 Square 类中的方法。
第一个问题
这是关于这个结果的:q.stampa(f1); //Particular Figure
我知道在编译时q
是一个,所以我会在课堂Square
上看看这个方法。在运行时,我认为结果可能是“特定矩形”而不是“特定图形”public void stampa(Square q)
Square
q
Rectangle
不知道我做错了什么
第二个问题
如果此时Rectangle
扩展Figure
而不是更多Square
,我肯定会对Square q = new Rectangle();
变量发生的事情有编译错误q
(会有这样的变量,Square q
或者我们没有任何名称为 q 的变量?),结果会是什么q.stampa(f1);
感谢并为我的英语感到抱歉,如果我在某些时候错了,请纠正我。
java - 为什么这是静态绑定而不是动态绑定?
关于静态和动态之间的区别,我仍然有些困惑。据我所知,动态使用对象,而静态使用类型,动态是在运行时解决的,而静态是在编译时解决的。所以 this.lastName.compareTo(s1.lastName) 不应该使用动态绑定吗?
key.compareTo(list[position-1]) 使用动态绑定
为什么 (this.lastName.compareTo(s1.lastName)) 使用静态绑定?
crystal-lang - Crystal C 绑定,简单的 hello world 示例。
我试图弄清楚水晶中的c绑定是如何工作的。对于初学者,我想知道如何将一个简单的 hello world c 函数包含到水晶中。从基础开始总是好的,对吗?这是我想包括的功能:
xaml - Xamarin 执行 OnPlatform StaticResource 绑定的新方法
以前我能够做这样的事情
现在,该语法已被弃用,我正在尝试这样做:
但我收到以下错误:
我的语法应该如何?
java - Java:静态与动态绑定(再次)
我已经阅读了很多博客、教程和合作,但我对 java 中的动态绑定一无所知。当我创建名为“myspecialcar”的对象时,它会从“car”类创建一个对象作为类车辆的类型作为动态绑定对吗?所以 java 知道当我执行myspecialcar.getType()方法时,我有一个汽车对象,它执行汽车类的方法。但是为什么我从类车上得到了类型?那是因为类车辆(类型)中的变量是静态绑定吗?
问候,
代码:
输出:
java - 如何在 Java 中获取静态绑定的类?
说
我们有,
我们知道这是真的,
有没有办法以编程方式告诉 v 的静态绑定正是 B ?
编辑:最初的想法是对重载方法进行单行检查。就像是,
可以引入进程(B b);但是,进程(A a)中有很多复制代码。