小编tho*_*ens的帖子

在Java 8中使用Java 7 Comparators

情况

我有一个OSGi项目,我正在尝试迁移到Java 8.在我的项目中,我依赖于第三方库,我"OSGi-fied"(通过添加MANIFEST.MF文件并将元数据放入其中).这些库是从只读SVN存储库中检出的,所以我只需要在需要时检查更新,因此我不想进行任何其他更改,而不是在MANIFEST.MF文件中,因为我无法提交它们.

问题

但是,这些库使用了许多匿名比较器,如:

private static final Comparator heightComparator = new Comparator() {
    public int compare (Object o1, Object o2) {
        return ((Glyph)o1).getHeight() - ((Glyph)o2).getHeight();
    }
};
Run Code Online (Sandbox Code Playgroud)

现在,显然java.util.Comparator接口有一大堆需要实现的新方法(当然,这会导致编译错误).但我真的想避免实现它们或切换到Lambda表达式,因为修改原始源很可能每次检查更新版本时都会导致冲突.

Java曾经在向后兼容性方面努力工作,我想知道为什么这么简单且广泛使用的API部分需要(相对)大量迁移.我错过了什么或是否真的不可避免?

java migration osgi java-8

17
推荐指数
2
解决办法
6906
查看次数

HTML表,第一列和最后一列固定宽度和动态之间的列,但宽度相等

是否可以使用宽度为100%的表格(因此表格符合屏幕大小),其中第一列和最后一列具有固定宽度,其间列为50%.

喜欢:

+--------------------+--------------------------------------+--------------------------------------+------------+
| width:300px;       | with dynamic, equals next column     | width dynamic, equals prevous column | width:50px;|
+--------------------+--------------------------------------+--------------------------------------+------------+
+--------------------+--------------------------------------+--------------------------------------+------------+
+--------------------+--------------------------------------+--------------------------------------+------------+
+--------------------+--------------------------------------+--------------------------------------+------------+
Run Code Online (Sandbox Code Playgroud)

html css

12
推荐指数
3
解决办法
5万
查看次数

Equinox和OSGI捆绑

我试图通过查看其底层包来了解Equinox的工作原理.

有人可以用一般术语解释(或指出一个很好的资源来理解)org.eclipse.osgiorg.eclipse.equinox系列捆绑包之间的关系/区别吗?据我所知,它org.eclipse.osgi包含基本OSGI运行时实现并org.eclipse.equinox实现其他服务.

eclipse osgi bundles equinox

5
推荐指数
1
解决办法
275
查看次数

Ember.js:从嵌套路由调用ApplicationRoute的操作

假设我有一个ApplicationRoute动作goBack(正如你在评论中看到的那样,由于不同移动浏览器中的错误,我需要自己处理goBack):

Mobile.ApplicationRoute = Em.Route.extend
    actions:
        goBack: ->
            # TODO: Remove when iOS 7 fixed their history
            # If there's no route to go back, go to front
            # TODO: Remove when Microsoft fixed their
            # back button in offline mode
            if not (Nn.MobileHelper.isiPhone() or Nn.MobileHelper.isIeMobile()) and @get("router.recentRoute")?
                return window.history.back()

            @get("controller").set("isHitBackButton", true)

            @transitionTo("front").then => @get("controller").set("isHitBackButton", false)
Run Code Online (Sandbox Code Playgroud)

如何从其他路线触发此操作?请注意,因为我需要调用@transitionTo,所以这段代码必须在路由中.

coffeescript ember.js

5
推荐指数
1
解决办法
2930
查看次数

表不是由Hibernate创建的

我注释了一堆POJO,因此JPA可以使用它们在Hibernate中创建表.似乎除了一个名为"Revision"的非常中心的表外,所有表都被创建.Revision类有一个@Entity(name="RevisionT")注释,因此它将被重命名为RevisionT,因此不会与MySQL(目标数据库)中的任何保留字冲突.

我删除整个数据库,重新创建它,基本上打开和关闭JPA会话.所有的表似乎都没有问题地重新创建.

为什么创建的模式中缺少单个表?可以使用什么样的工具来查看Hibernate产生的内容以及哪些错误?

谢谢.

更新:我尝试创建一个Derby DB并且它成功了.但是,其中一个字段的名称为"index".我@org.hibernate.annotations.IndexColumn用来指定除保留字以外的名称.但是,该列在创建时始终称为"索引".

这是可疑注释的示例.


    @ManyToOne
    @JoinColumn(name="MasterTopID")
    @IndexColumn(name="Cx3tHApe")
    protected MasterTop masterTop;
Run Code Online (Sandbox Code Playgroud)

MasterTop.Cx3tHApe它创造了而不是创建一个领域MasterTop.Index.为什么这个名字被忽略了?

java mysql hibernate jpa

4
推荐指数
2
解决办法
1万
查看次数

如何设置正确的equinox安装

我用谷歌搜索了几个小时,但我找不到任何有用的东西.我已经开发了一些OSGi包,现在我想在equinox容器中的Eclipse IDE之外运行它们,但它总是引发异常:

!SESSION 2011-01-03 14:26:58.958 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_20
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_CH
Framework arguments:  -Dosgi.clean=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -console;
Command-line arguments:  -consoleLog -Dosgi.clean=true -Declipse.ignoreApp=true -Dosgi.noShutdown=true -console;

!ENTRY org.eclipse.osgi 4 0 2011-01-03 14:26:59.567
!MESSAGE Error starting bundle: initial@reference:file:javax.transaction_1.1.1.v201006150915.jar/
!STACK 0
org.osgi.framework.BundleException: A fragment bundle cannot be started: javax.transaction_1.1.1.v201006150915 [49]
        at org.eclipse.osgi.framework.internal.core.BundleFragment.startWorker(BundleFragment.java:228)
        at org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:284)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.startBundle(EclipseStarter.java:1133)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.startBundles(EclipseStarter.java:1126)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.loadBasicBundles(EclipseStarter.java:646)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:301)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.main(EclipseStarter.java:150)
init dd core...

!ENTRY org.eclipse.osgi 4 0 2011-01-03 14:26:59.773
!MESSAGE Bundle javax.transaction_1.1.1.v201006150915 …
Run Code Online (Sandbox Code Playgroud)

osgi equinox

4
推荐指数
1
解决办法
4164
查看次数

标签 统计

osgi ×3

equinox ×2

java ×2

bundles ×1

coffeescript ×1

css ×1

eclipse ×1

ember.js ×1

hibernate ×1

html ×1

java-8 ×1

jpa ×1

migration ×1

mysql ×1