前段时间,在我的工作中,我需要保护一些课程,以防止其他人阅读代码.为此,我创建了一个EncryptedClassLoader,它加载了以前加密的类,并且还可以加载普通(未加密)类.以这种方式工作有点复杂,并且也进行测试(编译,然后加密,然后解密).
是否有任何免费框架可以做我需要的,并且易于处理?我的意思是,不仅混淆,而且还加密文件,所以没有人可以读取或调试这部分代码.我可以很容易地更改加密密钥(在我的应用程序中,它是硬编码的).
提前致谢.
在我的一个项目中,我有两个包含DTO的包,POJO只有吸气剂和二传手.虽然重要的是它们是简单的Java bean(例如,因为Apache CXF使用它们来创建Web服务XSD等),但它也很糟糕且容易出错.
Foo foo = new Foo();
foo.setBar("baz");
foo.setPhleem(123);
return foo;
Run Code Online (Sandbox Code Playgroud)
我更喜欢流畅的接口和构建器对象,因此我使用maven/gmaven自动为DTO创建构建器.所以对于上面的代码,FooBuilder会自动生成一个,我可以像这样使用:
Foo foo = new FooBuilder()
.bar("baz")
.phleem(123)
.build();
Run Code Online (Sandbox Code Playgroud)
我还自动为生成的Builders生成单元测试.单元测试将生成上述两个代码(构建器版本和非构建器版本),并声明两个版本在equals()和的方面都是等效的hashcode().我可以实现的方法是拥有一个全局可访问的Map,其中包含每种属性类型的默认值.像这样的东西:
public final class Defaults{
private Defaults(){}
private static final Map<Class<?>, Object> DEFAULT_VALUES =
new HashMap<Class<?>, Object>();
static{
DEFAULT_VALUES.put(String.class, "baz");
// argh, autoboxing is necessary :-)
DEFAULT_VALUES.put(int.class, 123);
// etc. etc.
}
public static getPropertyValue(Class<?> type){
return DEFAULT_VALUES.get(type);
}
}
Run Code Online (Sandbox Code Playgroud)
另一个非平凡的方面是pojos有时会有收集成员.例如:
foo.setBings(List<Bing> bings)
Run Code Online (Sandbox Code Playgroud)
但在我的构建器中,我希望从这种情况生成两种方法:set方法和add方法:
fooBuilder.bings(List<Bing> bings); // set method
fooBuilder.addBing(Bing bing); // add …Run Code Online (Sandbox Code Playgroud) 我想创建一个CGImageRef并为它绘制点.
用于创建空CGImageRef并能够绘制到其上的上下文.CGContextRef还是CGBitmapContextRef?
如果你可以提供代码来创建一个空的CGImageRef图像并绘制它,我将不胜感激.
我如何注册我的应用程序,以便当我收到短信时,我的应用程序出现在对话框中使用完成操作.我已经输入了意图代码
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.SENDTO"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="sms"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
但它不起作用......我应该使用接收器吗?请注意,我插入此代码的活动不是主要活动.谢谢
Ruby 1.8.7.我正在使用带有^的正则表达式来匹配字符串开头的模式.问题是,如果在字符串中的任何行的开头找到模式,它仍然匹配.如果我使用'm'修饰符,这是我期望的行为,但我不是:
$ irb
irb(main):001:0> str = "hello\ngoodbye"
=> "hello\ngoodbye"
irb(main):002:0> puts str
hello
goodbye
=> nil
irb(main):004:0> str =~ /^goodbye/
=> 6
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
下午好,
我正在写一个简单的词法分析器,它基本上是这个的修改版本.获取每个令牌后,我需要执行轻微的修改并重新分析它以重新检查它的类型.当然,在词法分析之后,我需要重新使用整个令牌列表来对其进行一种"解析".我的问题是如果在词法分析器中使用IEnumerable<Token>和yield return语句可以使整个程序的性能变慢...是否最好使用a List<Token>,迭代地构建列表并使用正常return语句?如何迭代IEnumerable/ List?哪一个更快?
非常感谢你.
我有一个bash脚本,a.sh,在其中我调用了一个python脚本b.py. python脚本计算一些东西,我希望它返回一个稍后将在a.sh中使用的值.我知道我能做到
在a.sh中:
var=`python b.py`
Run Code Online (Sandbox Code Playgroud)
在b.py中:
print x # when x is the value I want to pass
Run Code Online (Sandbox Code Playgroud)
但这不太方便,因为我还在b.py中打印其他消息
有没有更好的方法呢?
编辑:
我现在正在做的只是
var=`python b.py | tail -n 1`
Run Code Online (Sandbox Code Playgroud)
这意味着我可以在b.py中打印很多东西,但只有最后一行(最后一个打印命令,假设它中不包含"\n")将存储在var中.
感谢所有的答案!