小编mab*_*aba的帖子

在事务和嵌套数据库写入(使用Scala)

假设我有以下方法:
在WebsitesList模型上:

def create(urls: List[String]) = DB.withTransaction(implicit c => {
    val websites = urls.map(Website.create(_))
    val listId: Option[Long] = SQL("INSERT INTO LIST (created_date, active) VALUES ({created_date}, {active})").
      on('created_date -> new Date(), 'active -> true).
      executeInsert()
    websites.foreach(websiteId =>
      SQL("INSERT INTO websites_list (list_id, website_id) VALUES ({listId}, {websiteId})").
      on('listId -> listId.get, 'websiteId -> websiteId.id).executeInsert()
    )

    throw new Exception()
  })
Run Code Online (Sandbox Code Playgroud)

并在网站模型:

def create(url: String): Website = DB.withConnection {
    implicit c =>
      val currentDate = new Date()
      val insertedId: Option[Long] = SQL("insert into websites (url, Date_Added) …
Run Code Online (Sandbox Code Playgroud)

playframework anorm playframework-2.0 playframework-2.1

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

获取arraylist中的最后一个元素

在下面的代码中,它只调用一次元素.我怎样才能打印出"这是arraylist中的最后一个元素",当一切都被删除后,只剩下一个元素.

ArrayList<String> Responselist = new ArrayList<String>();
Responselist.add(CommentResponse());
Responselist.add(TriviaResponse());
Responselist.add(CriticResponse());
String[] SelectRand = new String [3];

for (int i = 0; i < SelectRand.length; ++i)
{
    int rnd = (int) (Math.random() * Responselist.size());
    SelectRand[i] = Responselist.get(rnd);
    Responselist.remove(rnd);
}

for (String x : SelectRand)
{
    if (!(Responselist.isEmpty()))
    {
        System.out.println(x);
    }
}
Run Code Online (Sandbox Code Playgroud)

java random arraylist

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

在C中嵌入Java库

我打算编写一个Java服务器/客户端应用程序,其中客户端实际上不是客户端(它没有主服务器),但它是一个库.

另外,我必须开发一个需要与服务器交互的C模块(保险丝驱动程序),因此需要调用客户端的功能.

我已经创建了许多从Java应用程序调用的C函数的例子,但没有我需要的.

你能给我一个建议或一些提示吗?

编辑

因为有人无法理解我需要什么,我想要更清楚:我有一个服务器,程序只能使用用Java编写的库与它交互.真正的客户端是用C编写的,它必须能够调用库的功能,所以在CI中必须调用java方法

c java java-native-interface

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

为什么你可以从已经关闭的ByteArrayOutputStream中读取数据?

我想知道为什么你仍然可以读取已经关闭的字节ByteArrayOutputStream.来自docs的这一行是不是意味着相反?

public void close ():关闭此流.这将释放用于此流的系统资源.

示例代码:

String data = "Some string ...";
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
DataOutputStream dOut = new DataOutputStream(bOut);
dOut.write(data.getBytes());
dOut.close();
System.out.println("Length: " + bOut.toByteArray().length);
System.out.println("Byte #2: " + bOut.toByteArray()[2]);
Run Code Online (Sandbox Code Playgroud)

输出:

Length: 15
Byte #2: 109
Run Code Online (Sandbox Code Playgroud)

难道我做错了什么?

java bytearrayoutputstream java-io

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

使用JNI在C中访问Java对象中的Java对象

我对JNI比较陌生,并且已经解决了使用JNI在Java对象中弄乱整数和数组的基础知识.现在我正在尝试修改/访问Java对象中的Java对象.

我一直在互联网和Stack Overflow上搜索,还没有找到如何做到这一点.

这是一个例子.

在Java中:

public class ObjectOne
{
    private byte[] buff;
    ...
    ...
}

public class ObjectTwo
{
    private ObjectOne obj;
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

在JNI中,如何通过ObjectTwo从ObjectOne访问"buff"?我试过这样的事......

JNIEXPORT void JNICALL Java_accessBuffThroughObjectTwo(JNIEnv *env, jobject obj, jobject objectTwo)
{
    jclass clazz;
    jclass bufferClazz;
    jobject bufferJObject;

    clazz = (*env)->GetObjectClass(env, objectTwo);
    fid = (*env)->GetFieldID(env, clazz, "obj", "Ljava/lang/Object;");
    bufferJObject = (*env)->GetObjectField(env, javascsicommand, fid);
    bufferClazz = (*env)->GetObjectClass(env, bufferJObject);  <-- Fails here for Access Violation
    fid = (*env)->GetFieldID(env, bufferClazz, "buff", "[B");
}
Run Code Online (Sandbox Code Playgroud)

对我做错的任何帮助?

c c++ java java-native-interface

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

如何删除所有前导和尾随标点符号?

我想删除字符串中的所有前导和尾随标点符号.我怎样才能做到这一点?

基本上,我想在单词之间保留标点符号,我需要删除所有前导和尾随标点符号.

  1. .,@,_,&,/,-允许如果由字母或数字环绕
  2. \' 如果前面有字母或数字,则允许

我试过了

Pattern p = Pattern.compile("(^\\p{Punct})|(\\p{Punct}$)");
Matcher m = p.matcher(term);
boolean a = m.find();
if(a)
    term=term.replaceAll("(^\\p{Punct})", "");
Run Code Online (Sandbox Code Playgroud)

但它不起作用!!

java string punctuation

5
推荐指数
2
解决办法
9244
查看次数

播放框架2.0反向路由

我是Java的新手,我正在使用play framework 2.0进行项目,并且想知道如何使用反向路由功能.我们有以下内容:

在路线文件中

GET /                controllers.Application.index()
GET /myapp/storage   controllers.myapp.AnotherController.index()
Run Code Online (Sandbox Code Playgroud)

所以要使用反向路由:

controllers.routes.ref.Application.index() 
Run Code Online (Sandbox Code Playgroud)

但是怎么样AnotherController

如果我controllers.routes.ref.AnotherController.index()在测试中使用,播放框架将抛出​​错误"找不到符号".

谢谢.

playframework-2.0

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

在Java中执行两个同步块

为什么Java中的两个不同线程无法同时执行两个同步块.

编辑

public class JavaApplication4 {

    public static void main(String[] args) {
        new JavaApplication4();
    }

    public JavaApplication4() {
        Thread t1 = new Thread() {

            @Override
            public void run() {
                if (Thread.currentThread().getName().equals("Thread-1")) {
                    test(Thread.currentThread().getName());
                } else {
                    test1(Thread.currentThread().getName());
                }
            }
        };
        Thread t2 = new Thread(t1);
        t2.start();
        t1.start();

    }

    public synchronized void test(String msg) {
        for (int i = 0; i < 10; i++) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException ex) {
            }
            System.out.println(msg);
        }
    }

    public synchronized void test1(String …
Run Code Online (Sandbox Code Playgroud)

java multithreading

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

如何使用更通用的IEnumerable <T>?

我的代码如下:

PropertyInfo p_info_keys = obj.GetType().GetProperty("Keys");
IEnumerable<string> keys = (IEnumerable<string>)p_info_keys.GetValue(obj, null);

foreach (string key in keys)
{
    // Some code
}
Run Code Online (Sandbox Code Playgroud)

问题是这一行:

IEnumerable<string> keys = (IEnumerable<string>)p_info_keys.GetValue(obj, null);
Run Code Online (Sandbox Code Playgroud)

因为它可以是:

IEnumerable<decimal> keys = (IEnumerable<decimal>)p_info_keys.GetValue(obj, null);
Run Code Online (Sandbox Code Playgroud)

我试过用这个:

IEnumerable<object> keys = (IEnumerable<object>)p_info_keys.GetValue(obj, null);
Run Code Online (Sandbox Code Playgroud)

但是,当然,它不起作用.

那么,我如何使用可以接受字符串和小数的更通用的结构?

先感谢您.

c# generics

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

`List x;`和`List x()`之间有什么区别吗?

标题来自Marshall Cline 着名的网站C++ FAQ.

作者声称以下两个代码示例之间存在差异.

假设List是某个类的名称.然后函数f()声明一个名为x的本地List对象:

void f()
{
    List x;     // Local object named x (of class List)
    ...
}
Run Code Online (Sandbox Code Playgroud)

但是函数g()声明了一个名为x()的函数,它返回一个List:

void g()
{
    List x();   // Function named x (that returns a List)
    ...
}
Run Code Online (Sandbox Code Playgroud)

但使用第二种变体是否真的错了?

如果真的是一个声明,编译器会不会抱怨你不能在函数中声明一个函数?

c++ variable-declaration most-vexing-parse

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