问题标签 [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.

0 投票
3 回答
1973 浏览

java - 编译时链接和运行时链接有什么区别?

我目前正在读一本书并坚持以下代码:

请查看注释行。

这本书继续说“重申一下,编译器只查看引用类型,而不是实例类型”。真的吗?如果是这种情况,两者a.eat()b.eat()都会产生相同的结果,因为它们 (ab) 具有相同的引用类型(即Animal)。

对我来说,这似乎是编译时绑定,因为尚未使用 virtual 关键字,但在书中结果是运行时绑定。在这一点上我很困惑。任何帮助将不胜感激。

0 投票
4 回答
166 浏览

java - 令人困惑的java代码 - 与静态绑定相关

关于这段代码的一些事情让我感到困惑。第一个打印行是 1600。我知道这与静态类是 Car 而不是 Sportscar 有关。但是我们将对象创建为跑车,那么为什么体积字段不是 3500?谢谢。

0 投票
1 回答
1044 浏览

java - 在 Java 中何时使用静态绑定以及何时使用动态绑定?

最近我正在学习如何使用 Slf4j。我知道两个新概念:静态绑定和动态绑定。在 JCL(Jakarta Commons Logging)中,它使用动态绑定来选择实现,而 Slf4j 使用静态绑定。在这种情况下,我们知道 Slf4j 更明智。但是其他情况呢?

如果遇到一个问题,使用静态绑定和动态绑定都可以解决,那我们该如何选择呢?有什么基本规则吗?

我的英语不是很好。所以我不确定我是否说清楚了。如果您有更多问题,请发表评论。

谢谢。

0 投票
1 回答
881 浏览

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 的依赖项。

如果您需要更多信息,请告诉我。

0 投票
2 回答
651 浏览

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)SquareqRectangle

不知道我做错了什么

第二个问题

如果此时Rectangle扩展Figure而不是更多Square,我肯定会对Square q = new Rectangle();变量发生的事情有编译错误q(会有这样的变量,Square q或者我们没有任何名称为 q 的变量?),结果会是什么q.stampa(f1);

感谢并为我的英语感到抱歉,如果我在某些时候错了,请纠正我。

0 投票
2 回答
163 浏览

java - 为什么这是静态绑定而不是动态绑定?

关于静态和动态之间的区别,我仍然有些困惑。据我所知,动态使用对象,而静态使用类型,动态是在运行时解决的,而静态是在编译时解决的。所以 this.lastName.compareTo(s1.lastName) 不应该使用动态绑定吗?

key.compareTo(list[position-1]) 使用动态绑定

为什么 (this.lastName.compareTo(s1.lastName)) 使用静态绑定?

0 投票
1 回答
1565 浏览

crystal-lang - Crystal C 绑定,简单的 hello world 示例。

我试图弄清楚水晶中的c绑定是如何工作的。对于初学者,我想知道如何将一个简单的 hello world c 函数包含到水晶中。从基础开始总是好的,对吗?这是我想包括的功能:

0 投票
1 回答
1288 浏览

xaml - Xamarin 执行 OnPlatform StaticResource 绑定的新方法

以前我能够做这样的事情

现在,该语法已被弃用,我正在尝试这样做:

但我收到以下错误:

我的语法应该如何?

0 投票
4 回答
412 浏览

java - Java:静态与动态绑定(再次)

我已经阅读了很多博客、教程和合作,但我对 java 中的动态绑定一无所知。当我创建名为“myspecialcar”的对象时,它会从“car”类创建一个对象作为类车辆的类型作为动态绑定对吗?所以 java 知道当我执行myspecialcar.getType()方法时,我有一个汽车对象,它执行汽车类的方法。但是为什么我从类车上得到了类型?那是因为类车辆(类型)中的变量是静态绑定吗?

问候,

代码:

输出:

0 投票
0 回答
56 浏览

java - 如何在 Java 中获取静态绑定的类?

我们有,

我们知道这是真的,

有没有办法以编程方式告诉 v 的静态绑定正是 B ?

编辑:最初的想法是对重载方法进行单行检查。就像是,

可以引入进程(B b);但是,进程(A a)中有很多复制代码。