假设我有以下方法:
在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) 在下面的代码中,它只调用一次元素.我怎样才能打印出"这是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服务器/客户端应用程序,其中客户端实际上不是客户端(它没有主服务器),但它是一个库.
另外,我必须开发一个需要与服务器交互的C模块(保险丝驱动程序),因此需要调用客户端的功能.
我已经创建了许多从Java应用程序调用的C函数的例子,但没有我需要的.
你能给我一个建议或一些提示吗?
编辑
因为有人无法理解我需要什么,我想要更清楚:我有一个服务器,程序只能使用用Java编写的库与它交互.真正的客户端是用C编写的,它必须能够调用库的功能,所以在CI中必须调用java方法
我想知道为什么你仍然可以读取已经关闭的字节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)
难道我做错了什么?
我对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)
对我做错的任何帮助?
我想删除字符串中的所有前导和尾随标点符号.我怎样才能做到这一点?
基本上,我想在单词之间保留标点符号,我需要删除所有前导和尾随标点符号.
.,@,_,&,/,-允许如果由字母或数字环绕\' 如果前面有字母或数字,则允许我试过了
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的新手,我正在使用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()在测试中使用,播放框架将抛出错误"找不到符号".
谢谢.
为什么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) 我的代码如下:
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)
但是,当然,它不起作用.
那么,我如何使用可以接受字符串和小数的更通用的结构?
先感谢您.
标题来自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)
但使用第二种变体是否真的错了?
如果真的是一个声明,编译器会不会抱怨你不能在函数中声明一个函数?