如果我向一个类添加一个元方法,我希望它会出现在Class.metaClass.metaMethods.但事实似乎并非如此.特别是,如果我这样做:
class Example {
def realFoo() { "foo" }
}
Example.metaClass.metaFoo = { -> "foo" }
def reals = Example.metaClass.methods*.name.grep{it.contains("Foo")}
def metas = Example.metaClass.metaMethods*.name.grep{it.contains("Foo")}
println "reals = $reals, metas = $metas"
Run Code Online (Sandbox Code Playgroud)
我希望输出reals = [realFoo], metas = [metaFoo],但实际上我得到了reals = [realFoo, metaFoo], metas = [].
看起来新的元方法存储在方法中,而不是metaMethods.那么,metaClass.methods和之间有什么区别metaClass.metaMethods?
我想查看默认hsqldb内存数据库的grails模式,但是当我使用SquirrelSQL或DbVisualizer连接到内存数据库时userid: sa, password: (nothing),我只看到两个模式:
INFORMATION_SCHEMA
PUBLIC
Run Code Online (Sandbox Code Playgroud)
并且都不包含我的域表.这是怎么回事?
我正在java中为现有程序编写测试工具.作为其中的一部分,我需要生成一个Diffie Hellman密钥对,并以其原始(即未编码的字节)形式将公钥传递给另一个程序.
我可以使用以下代码成功使用密钥对:
KeyPairGenerator kpg = KeyPairGenerator.getInstance("DiffieHellman");
kpg.initialize(512);
KeyPair dkp = kpg.generateKeyPair();
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法检索键的原始字节值:-(调用dkp.getPublic().getEncoded()返回一个字节数组,但它的键是x509编码格式.
我有三种可能的前进方式:
但我不知道如何去做任何一个(哪个会变得最好)?
任何帮助或建议将不胜感激!
如何将枚举类型的mysql字段映射到grails域类?
我正在使用grails v.2.0.3的现有(遗留)mySQL数据库.错误的列类型我收到错误:
failed; nested exception is org.hibernate.HibernateException: Wrong column type in
facilities.ost_fac_syslog for column log_type. Found: enum, expected: varchar(255)
Run Code Online (Sandbox Code Playgroud)
SQL字段定义为:
mysql> describe ost_fac_syslog;
+------------+---------------------------------+------+-----+--------------------
| Field | Type | Null | Key | Default
+------------+---------------------------------+------+-----+----------------------+
| log_id | int(11) unsigned | NO | PRI | NULL auto_increment |
| log_type | enum('Debug','Warning','Error') | NO | MUL | NULL | |
Run Code Online (Sandbox Code Playgroud)
我的域类是:
class OstFacSyslog {
static mapping = {
table 'ost_fac_syslog'
version false
id column: 'log_id', name:'logId'
logType column: 'log_type', …Run Code Online (Sandbox Code Playgroud) 我是Java的新手,并试图在我的计算机上运行.
一个简单的"hello world program"无法调用方法
class helloworld
{
public static void main(String[] param)
{
helloWorld();
System.exit(0);
}
public static void helloWorld();
{
System.out.println("hello world");
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
.\helloworld.java:11: error: missing method body, or declare abstract
public static void helloworld();
^
Run Code Online (Sandbox Code Playgroud) 我有一个groovy脚本createWidget.groovy:
import com.example.widget
Widget w = new Widget()
Run Code Online (Sandbox Code Playgroud)
当我像这样运行它时,这个脚本运行得很好:
$ groovy -cp /path/to/widget.jar createWidget.groovy
Run Code Online (Sandbox Code Playgroud)
但是,我想在脚本中硬编码类路径,以便用户不需要知道它在哪里,所以我修改了createWidget.groovy如下(这是在groovy中修改类路径的方法之一):
this.getClass().classLoader.rootLoader.addURL(new File("/path/to/widget.jar").toURL())
import com.example.widget
Widget w = new Widget()
Run Code Online (Sandbox Code Playgroud)
但是这总是在导入时出现运行时错误:unable to resolve class com.example.widget.
这看起来非常正统,我想你不能在导入之前搞乱rootLoader,还是别的什么?
在使用Groovy 1.7.4循环遍历集合时,如何获取迭代器的下一个值
values.each {it ->
println(it)
println(it.next()) //wrong
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 AES 加密来加密和解密服务器端 php 和 Android 应用程序(作为客户端)之间的字符串。
PHP中的加密字符串是:
HaxRKnMxT24kCJWUXaVvqDHahzurJQK+sYA4lIHql/U=
Run Code Online (Sandbox Code Playgroud)
在 Java 中它是:
HaxRKnMxT24kCJWUXaVvqD/KMEkJTPTXEcCsHIYGX9TGtCNOHQcJyUURPk8qlgf3
Run Code Online (Sandbox Code Playgroud)
我在 PHP 脚本中使用 phpseclib 进行加密。
我在这里缺少什么?
相关的Java代码在这里
SecretKeySpec skeySpec = new SecretKeySpec(pad16(pass), "AES");
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] out = c.doFinal( input )
Run Code Online (Sandbox Code Playgroud)
和这里的 PHP 代码:
$aes = new Crypt_AES();
$aes->setKey('password');
$encrypted_encoded_text = base64_encode($aes->encrypt($plaintext));
Run Code Online (Sandbox Code Playgroud) 我是一个Grails noob,试图为我的第一个项目配置db-reverse-engineer插件. 插件的文档表明我需要配置它,但我没有看到我应该编辑配置的位置.
我的项目中是否有需要编辑的配置文件?我在./grails-app/conf文件夹中搜索了grails.plugin(此插件配置的前缀),但没有找到任何内容.SO或Google搜索如何配置grails插件也会返回void.我知道这是一个蹩脚的问题,但我如何配置这个插件?是否有我需要使用的UI,或者有哪些文件可以编辑?
我有一个字符串列表,每个字符串都包含这样的时间:
"03:00 AM","12:30 PM","16:15"
我需要按顺序对它们进行排序:首先放"am"次并比较小时数,而不仅仅是字符串中的第一个数字.