我搜索了所有答案,以了解为什么我们的来源应与目标不同,但来源却不统一:
public function up()
{
Schema::create('jobs', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->integer('company_id')->unsigned();
$table->foreign('company_id')->references('id')->on('company');
});
}
如果JDK向后兼容,为什么在1.7上完成编译时我需要将目标设置为1.8?
将源设置为高于目标将不起作用,错误示例:
源版本8需要目标版本1.8
也来自Maven:
仅设置目标选项并不能保证您的代码 实际上在具有指定版本的JRE上运行。陷阱是 意外使用仅在以后的JRE中存在的API 使您的代码在运行时因链接错误而失败
任何人都可以举例吗? maven源代码和目标代码是我自己的源代码,而不是依赖项,那么在以后的JRE(以我自己的代码)中可以成功使用API的情况是什么?
答案 0 :(得分:0)
通常,将目标JVM设置为与源JVM匹配,否则。如果未设置目标JVM,则Java编译器的版本会将其设置为该JVM版本,例如如果使用Java 10进行构建,则除非您将目标JVM指定为更低版本,否则目标类文件将仅在Java 10下运行。
我想在您的企业针对目标JVM(例如Java 8 b / c或出于安全性和/或性能原因)的情况下,该目标高于您希望与源Java兼容的目标JVM(例如Java) 7),然后将目标版本设置为高于源版本。也许您可以将此代码库“共享”给仍可能以Java 7 JVM为目标的其他人。