小编iir*_*ekm的帖子

代码辅助(ctrl + space)在Eclipse Kepler上不起作用

代码辅助(ctrl+ space)在Eclipse Kepler上不起作用.今天早上发生在我身上.

java eclipse

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

为什么人们在代码中使用消息/事件总线?

我认为您已经听说过消息/事件总线,它是系统中所有事件流动的单一位置.在计算机的主板和LAN网络中可以找到类似的架构.这对于主板和网络来说是一个很好的方法,因为它减少了电线的数量,但它对软件开发有好处吗?我们没有像电子产品那样的限制.

消息总线/事件总线的最简单实现可以是:

class EventBus {
    void addListener(EventBusListener l}{...}
    void fireEvent(Event e) {...}
}
Run Code Online (Sandbox Code Playgroud)

发布事件是通过bus.fireEvent(事件)完成的,接收消息由bus.addListener(侦听器)启用.这种体系结构有时用于软件开发,例如MVP4G为GWT实现类似的消息总线.

活跃项目:

休眠/死亡项目:

它只是流行的Observer(Listener)模式"全局" - 系统中的每个对象都可以监听每条消息,我认为这很糟糕,它打破了封装原则(每个对象都知道所有内容)和单一责任原则(例如,某些对象需要一种新类型的消息,事件总线通常需要更改,例如在Listener类中添加一个新的Listener类或一个新方法.

由于这些原因,我认为,对于大多数软件来说,Observer模式比事件总线更好.您如何看待事件总线,它对典型应用程序有什么好处?

编辑:我不是在谈论像ESB这样的"大型"企业解决方案 - 它们可能很有用(ESB提供的内容远远超过事件总线).我在询问有关在"常规"Java代码中使用消息总线进行对象到对象连接的有用性 - 有些人这样做,请查看上面的链接.事件总线可能是电话到电话通信或计算机到计算机通信的最佳解决方案,因为网络中的每个电话(或计算机)通常可以相互通信,并且总线减少了电线的数量.但是对象很少相互交谈 - 一个对象可以拥有多少合作者 - 3,5?

java events design-patterns event-handling

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

我在哪里可以获得Java 8语言规范?

Oracle网站上提供了Java 7规范,但我无法在任何地方找到Java 8规范,尽管互联网上提供了Java 8测试版的下载.

你有一个想法:它已经写好了,它可以在哪里下载?如果规范不可用,可能是另一个可以作为(或接近)规范的文件?

java language-specifications java-8

25
推荐指数
1
解决办法
7020
查看次数

Java的遗传编程库

我正在为JVM寻找一个好的遗传编程库.(不是遗传算法,而是遗传编程)我尝试了JGAP(jgap.sourceforge.net)和Watchmaker(watchmaker.uncommons.org).不幸的是,这些工具只对遗传编程提供了实验性和不成熟的支持(它们主要集中在遗传算法上).

也许你知道任何更好的遗传编程工具,JVM(可以用Java或任何其他编译语言编写的JVM).

我不是在寻找一个全面的GP工具列表,我宁愿寻找一个好的,流行的工具(就像流行的操作系统是Windows,Linux和Mac,流行的Java IDE是Eclipse,IDEA和NetBeans).

它不一定是遗传编程库(GP),它也可以(并且可能更好)基因表达编程库(GEP).

编辑(自问题起两个月后):我分析了您发布的大部分链接以及Wiki中可用的链接,我必须说每个库至少存在以下一个问题:

  • 没有开源,或开源,但非常严格(GPL);

  • 没有文件(或非常差的文件);

  • 没有内置支持遗传编程或基因表达编程(或实验一个;

  • 有些使用起来太复杂了.

在这篇文章中,我最终为项目编写了自己的简单库(使用基因表达式编程方法,这使得它非常简单).

java artificial-intelligence genetic-programming

15
推荐指数
2
解决办法
5292
查看次数

在嵌入式Android设备上使用Google OAuth 2

我们有基于Android的嵌入式设备的应用程序,它使用WebView,在其中我们使用Google OAuth 2登录应用程序.不幸的是,谷歌很快就会在WebView中阻止OAuth 2,我们有很多限制:

  • 该设备没有安装Google服务,因此可能没有"官方"登录方式可行(或者如果没有Google服务,其中任何一种都可以使用?)
  • 我们不能只是调用Android浏览器来登录,因为它显示地址栏,这将允许用户上网,我们不能允许
  • 我们无法完全控制设备上安装的软件:无法安装Google服务,更新Android版本,安装Google Chrome等等,我们只需更新我们的应用即可.

我们还能做些什么限制呢?

android oauth oauth-2.0 google-oauth google-oauth2

15
推荐指数
1
解决办法
1124
查看次数

完整的Java元编程框架?

我对元编程感兴趣(即帮助程序员完成繁琐的编程任务的程序).我正在寻找具有以下属性的工具:

  • 在编译时和运行时都可用;
  • 检查计划结构;
  • 可以添加新的类,方法或字段,并使它们对Java编译器可见;
  • 可以改变方法的行为;
  • 基于Java(根据一些排名,Java是最流行的编程语言);
  • 与IDE以及Ant,Gradle或Maven等构建工具的良好集成;
  • 积极维护项目;
  • 易于使用和扩展;

有一些解决方案,如:

  • 反射
  • AspectJ的
  • 注释处理工具
  • 字节码操作(CGLIB,Javassist,java.lang.instrument)
  • Eclipse JDT
  • 龙目岛项目
  • Groovy,JRuby,Scala

但不幸的是,它们都不符合上述所有标准.是否有完整的Java元编程解决方案?

java metaprogramming

11
推荐指数
1
解决办法
1321
查看次数

在Scala中实现具有原始类型的方法

我在Scala中使用Drools Planner(用Java编写)时遇到了问题.Drools规划器中的一个接口声明为:

public interface Score<S extends Score> extends Comparable<S>
Run Code Online (Sandbox Code Playgroud)

但是另一个界面使用'Score'作为原始类型:

public interface Solution {
    Score getScore();
Run Code Online (Sandbox Code Playgroud)

然后我想在Scala中实现这个接口:

class MySolution extends Solution {
    def getScore: Score = ...
Run Code Online (Sandbox Code Playgroud)

我得到一个编译错误:Scala编译器不允许编写'def getScore:Score'.当我尝试添加'Score [_]'或'Score [whatever]'编译器抱怨类型不兼容时.我该怎么办?

java scala drools drools-planner

7
推荐指数
2
解决办法
851
查看次数

哪些独立的Java解析器可用?

我需要一个独立的Java解析器(程序"读取".java源文件并生成AST [即表示源内容的对象]).

  • https://code.google.com/p/javaparser/但它只支持Java 1.5
  • 我知道如何以"独立"模式运行Eclipse Java解析器,但是这个解析器使用了太多的Eclipse JAR,太复杂了,并且使用了EPL许可证,这是GPL不兼容的
  • 其他IDE(IntelliJ,NetBeans,JDeveloper)和javac编译器也必须有一些Java解析器,但我找不到任何文档如何在"独立"应用程序中使用它们

有帮助吗?也许你的某些人也试过做一些独立的Java解析?

java parsing netbeans metaprogramming intellij-idea

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