小编Ale*_*you的帖子

将行为嵌入实体Bean是一种好习惯吗?

虽然我的Java应用程序很小并且做了简单的事情,但我很高兴使用纯SQL,而像Glassfish这样的应用程序服务器使连接管理变得非常简单.在我了解了JPA和EJB之后,我决定重构我的项目以使它们使用这些很酷的东西,但面临的问题更多的是关于设计而不是编程:

将行为嵌入实体Bean是一种好的做法,还是只应保存数据?

我已经阅读了很多手册和教程,但他们主要回答我如何使用它们,而不是我应该如何使用它们来满足良好的设计要求.

例如,给定2个类:User并且Location,它们都是实体bean.A user可以存储locations的集合,使用JPA可以轻松实现.但是,如果我想用一些功能填充这些类,例如计算到另一个用户或位置的距离的方法,找到它们的路径交叉点,计算user一天运行的距离,等等.如果我在bean本身实现这样的功能,或者我应该使用特殊的装饰器和带有大量静态方法的辅助类来实现我的目标,它会是一个"好的设计"吗?

java ejb jpa entity-bean

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

如何在JPA中使用多个数据库?

我使用jpa在我的Web应用程序中需要两个或两个以上的连接

java jpa

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

拆分一个字符串,得到倒数第二个字

我有一个字符串"Hai,你好,怎么样,是,你"

我需要的是我需要的第二个字是"是"

String string = "Hai,Hello,How,are,you";

String[] bits = string.split(",");
String lastWord = bits[bits.length-1]
tvs.setText(lastWord);
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时:

String lastWord = bits[bits.length-2];
Run Code Online (Sandbox Code Playgroud)

我没有得到倒数第二个字.

java string split

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

在Hapi.js Restful API中了解请求IP

我正在使用node.js和hapi.js开发Restful API.我正在尝试记录请求我的一条路线的客户端的IP.

这是我目前的代码:

function(request, reply){
    var ip = request.headers['x-forwarded-for'] || request.connection.remoteAddress;
    console.log('IP: ' + ip);

    //more code...
}
Run Code Online (Sandbox Code Playgroud)

但是当我查看我的日志时,ip是未定义的.我怎样才能解决我的问题?

javascript node.js hapijs

3
推荐指数
1
解决办法
1805
查看次数

Android - 如何让RotateAnimation更加流畅和"物理"?

我正在使用磁场传感器实现一种跟随目的地的"罗盘箭头",具体取决于设备的物理方向.突然间我遇到了一个小问题.

获得方位和方位角是可以的,但是执行逼真的动画变成了一项非常艰巨的任务.我尝试使用不同的内插器使动画更"物理"(即在真实的罗盘中,箭头在发夹旋转后振荡,在运动期间加速和减速等).

现在我正在使用interpolator.accelerate_decelerate,一切都很好,直到更新快速到达.这使得动画彼此重叠,箭头变得抽搐和紧张.我想避免这种情况.我试图实现一个队列,使每个下一个动画等到上一个结束,或者删除非常快的更新.这使动画看起来很流畅,但箭头的行为变成了绝对不合逻辑的.

所以我有两个问题:

1)在动画相互重叠的情况下,是否有某种方法可以使动画过渡更加平滑

2)有没有办法停止当前处理的动画并获得对象的中间位置?

我的代码如下.的UpdateRotation()方法处理方向和轴承更新,并执行外部的动画viewArrow图.

public class DirectionArrow {

// View that represents the arrow
final View viewArrow;

// speed of rotation of the arrow, degrees/sec
final double rotationSpeed;

// current values of bearing and azimuth
float bearingCurrent = 0;
float azimuthCurrent = 0;


/*******************************************************************************/

/**
 * Basic constructor
 * 
 * @param   view            View representing an arrow that should be rotated
 * @param   rotationSpeed   Speed of rotation …
Run Code Online (Sandbox Code Playgroud)

animation android rotation android-sensors

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

ConcurrentHashMap 中的 Treemap 线程安全吗?

我有一个嵌套地图的案例,如下所示:

private final static Map<String, TreeMap<Long,String>> outerConcurrentMap = new ConcurrentHashMap<>();
Run Code Online (Sandbox Code Playgroud)

我知道这ConcurrentHashMap是线程安全的,但我想知道TreeMap这个 CHM 持有的 s ,它们在 CHM 内部也是线程安全的吗?

我正在做的操作是:

  1. 如果未找到特定键 --> 创建新的 TreeMap 并针对键放置。
  2. 如果找到 key,则获取 TreeMap,并更新它。
  3. get(K)使用.从 CHM 检索 TreeMap
  4. 使用方法从 TreeMap 检索数据tailMap(K,boolean)
  5. clear()CHM。

在这种情况下我想要一个线程安全的结构。上述实现是否线程安全?如果没有,请提出解决方案。

java concurrency thread-safety concurrenthashmap treemap

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

无法通过套接字发送多条消息

我正在尝试制作一个小聊天系统。我有一个控制台和一个客户端。现在只有客户端需要向控制台发送消息。我可以成功连接到服务器,并且可以从客户端向控制台发送一条消息。发送第一条消息后,麻烦就开始了。当第一条消息时,我无法发送任何其他消息。

不知道是控制台不读取消息还是客户端不发送消息。在这种情况下,我该如何解决这个问题?

public class ClientMainClass {


private static Socket socket;
public static void main(String args[]) {
    try {

        String host = "localhost";
        int port = 25000;
        InetAddress address = InetAddress.getByName(host);
        socket = new Socket(address, port);

        Scanner scanner = new Scanner(System.in);
        System.out.println("Skriv dit username:");
        String name = scanner.nextLine();
        System.out.println("Du er logget ind som: " + name);
        String input;

        do{
            input = scanner.nextLine();
            if (input.equalsIgnoreCase("exit")) {
                System.out.println("Du forlod serveren");
                socket.close();
                continue;
            }else {
                /*OutputStream os = socket.getOutputStream();
                OutputStreamWriter osw = new OutputStreamWriter(os); …
Run Code Online (Sandbox Code Playgroud)

java sockets

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

使用递归反转双链表

我正在编写程序来使用递归反转双链表。我知道如何迭代实施。但陷入了递归。

这是我所拥有的

public static Node reverseRecurseDoubleLinkedList(Node node){
        if (node==null || node.next==null)
            return node;
        Node newNode = reverseRecurseDoubleLinkedList(node.next);
        node.next.next=node;
        node.next=null;
        node.prev=newNode;
        return newNode;
    }
Run Code Online (Sandbox Code Playgroud)

我发现prev指针设置不正确。但next指针实际上是正确的。

谢谢

java algorithm recursion

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

如何用流替换两个嵌套的for循环和if语句

我有一个if语句嵌套在for循环内,而这两个都嵌套在另一个for循环内。我想提出一些建议,如果可以使用流API对其进行替换,以及是否应该对其进行替换或保留原样。

我一直在寻找解决方案,但是我想要的事情似乎更加复杂,因为我需要基于与另一个列表匹配的ID来修改一个列表。

for (User user : userList) {
    for (Vehicle vehicle : vehicleList) {
        if (user.getId().equals(vehicle.getUserID())) {
            user.addVehicleToList(vehicle);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用流产生相同的结果。

java java-stream

-1
推荐指数
1
解决办法
86
查看次数

如何检查字符串是否由2个整数组成,中间有空格

正如标题所述,我想知道如何检查字符串是否包含2个整数,在Java中它们之间有空格.
作为一个例子:
0 2,应该返回true.
0 abc,应该返回false.
abcsd,应该返回false.
等等...

如果有任何帮助,我从带有缓冲读卡器的文本文件中获取字符串.也许有更直接,更简单的方法?

先感谢您

java string integer

-2
推荐指数
1
解决办法
92
查看次数