Java 6 API原始类型包装器具有成对的静态方法decode(String s)和valueOf(String s).它们都返回一个包装类类型的新对象,并且它们都没有注释为已弃用.有人知道他们之间的区别吗?例如:
Byte b1 = Byte.decode("10");
Run Code Online (Sandbox Code Playgroud)
和
Byte b2 = Byte.valueOf("10");
Run Code Online (Sandbox Code Playgroud) 我创建了一个C++/CLI程序集,它创建了一个围绕本机C++代码的包装器.当我将它作为资源添加时,资源编译和程序集加载到我的C#项目中.我可以从我的应用程序中访问我的对象和intellisense,但是在尝试构建时,它会崩溃并出现异常:
BadImageFormat
无法加载文件或程序集"MyCLI,Version = 1.0.3680.28432,Culture = neutral,PublicKeyToken = null"或其依赖项之一.尝试加载格式不正确的程序.
我将它加载到我的表单加载事件:
MyCLI.myCLI z;
Run Code Online (Sandbox Code Playgroud)
...当我编译时,它在我在C#中的主构造函数中的这一行崩溃
Application.Run(new Form1());
Run Code Online (Sandbox Code Playgroud)
有没有人知道可能导致此异常的原因?
谢谢
我正在为C#设计数据库包装器.以下是我的两个选项:
选项A:
class DBWrapper:IDisposable
{
private SqlConnection sqlConn;
public DBWrapper()
{
sqlConn = new SqlConnection("my connection string");
sqlConn.Open();
}
public DataTable RunQuery(string Sql)
{
implementation......
}
public Dispose()
{
if(sqlConn != null)
sqlConn.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
选项B:
class DBWrapper
{
public DBWrapper()
{
}
public DataTable RunQuery(string Sql)
{
SqlConnection sqlConn = new SqlConnection("my connection string");
.....implementation......
sqlConn.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
对于选项,在实例化类时打开连接.因此,无论调用者调用RunQuery多少次,连接始终都准备就绪.但是如果应用程序在应用程序的早期实例化DBWrapper,那么在应用程序完成之前,连接将被打开并且什么都不做.此外,它可以在执行期间实例化许多DBWrapper.所以,这有点浪费资源.
对于选项B,它没有选项A具有的问题,但每次调用者调用RunQuery时都必须打开和关闭新连接.我不确定它会对性能有多大影响.
请分享您的专长.谢谢你的阅读.
我已经使用StructureMap超过一年了.而且这段时间我曾经有一个名为IoC的包装类,看起来像这样
class IoC {
public static T GetInstance<T>()
{
return (T)GetInstance(typeof(T));
}
public static IEnumerable<T> GetAllInstances<T>()
{
return ObjectFactory.GetAllInstances<T>();
}
public static IEnumerable GetAllInstances(Type type)
{
return ObjectFactory.GetAllInstances(type);
}
public static object GetInstance(Type type)
{
return ObjectFactory.GetInstance(type);
}
public static void Inject<T>(T obj)
{
ObjectFactory.Inject(obj);
}
}
Run Code Online (Sandbox Code Playgroud)
我添加了包装器,假设我可能想在某个时候更改IoC容器.此时我觉得这很糟糕.一个原因是:我不能在我的代码中使用ObjectFactory做其他有趣的事情,我必须使用这个包装器.另一件事是:我们的代码不应该真正独立于DependencyInjection容器.
使用这种方法的优点/缺点是什么?
structuremap abstraction dependency-injection ioc-container wrapper
我正在创建一个CLI项目来包装现有的本机c ++项目(同一个解决方案文件中的两个独立项目).我想在托管类中包含一个指向本机类的指针作为成员.从我在线阅读的文档中,如果托管代码和非托管代码在同一个项目中,则可以完成此操作.如果本机代码和托管代码位于不同的项目中,那么唯一的选择是在两个项目之间使用dllimport和dllexport属性,并将本机代码类函数导出为静态函数.
这些是我唯一的选择,还是可以在两个单独的项目之间导入和导出整个本机类?我问,因为这决定了我如何设计我的托管包装器.提前致谢.
我有一个Object,它有一堆公共属性,没有getter和setter.坏!所以我创建了一个包含属性的类,并为它们创建了getter和setter.我的计划是将对象包装在我的类中,这意味着不能直接访问属性.我有点不确定如何做到这一点.我明白铸造很好.我怎么能用安全类用getter和setter包装这个类,并通过我的getter和setter访问属性?
我试图删除我设置的页脚使用我用来设置它的相同参考.然而,没有任何反应.
protected void onPostExecute(ArrayList<Recipe> result) {
int CHEF_ID = ChefsRecipeList.this.getIntent().getIntExtra("CHEF_ID", 0);
ListView recipeListView = (ListView)findViewById(android.R.id.list);
View footer = getLayoutInflater().inflate(R.layout.chef_recipe_list_footer, null);
if(!addToExisting){
RecipeManager.getInstance().setRecipeList(result);
View header = getLayoutInflater().inflate(R.layout.chef_recipe_list_header, null);
ImageView loadButton = (ImageView)footer.findViewById(R.id.loadmore);
loadButton.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
int CHEF_ID = ChefsRecipeList.this.getIntent().getIntExtra("CHEF_ID", 0);
try {
Log.d("NXTLAOD", "http://api.foodnetworkasia.com/api/mobile/get_recipes?chefId="+ChefManager.getInstance().getChef(CHEF_ID).getId()+
"&format=xml&startIndex="+(RecipeManager.getInstance().getRecipeList().size()+1)+"&endIndex="+(RecipeManager.getInstance().getRecipeList().size()+24));
new XMLRecipesParser(true).execute(new URL[] { new URL("http://api.foodnetworkasia.com/api/mobile/get_recipes?chefId="+ChefManager.getInstance().getChef(CHEF_ID).getId()+
"&format=xml&startIndex="+RecipeManager.getInstance().getRecipeList().size()+"&endIndex="+(RecipeManager.getInstance().getRecipeList().size()+24)) } );
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
ImageView chefPhoto = (ImageView)header.findViewById(R.id.chef_photo);
chefPhoto.setImageBitmap(ImageURLLoader.LoadImageFromURL(ChefManager.getInstance().getChef(CHEF_ID).getLargeURL()));
TextView …Run Code Online (Sandbox Code Playgroud) 以下方法返回输出:在原始int arg方法中
public class TestMethodOverloading {
private void show(int a){
System.out.println("in primitive int arg method");
}
private void show(float a){
System.out.println("in primitive float arg method");
}
public static void main(String[] args) {
TestMethodOverloading tmo = new TestMethodOverloading();
tmo.show(4);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,如果我将show方法的arguement类型从int更改为Integer,则输出返回为:in primitive float arg method
public class TestMethodOverloading {
private void show(Integer a){
System.out.println("in Integer arg method");
}
private void show(float a){
System.out.println("in primitive float arg method");
}
public static void main(String[] args) {
TestMethodOverloading tmo = new TestMethodOverloading();
tmo.show(4); …Run Code Online (Sandbox Code Playgroud) frameworks/av/camera/cameraserver/Android.mk:18: Target has integrated cameraserver into mediaserver. This is weakening security measures introduced in 7.0
find: ‘/home/xuanan/android/lineage/out/target/common/obj/SHARED_LIBRARIES/libwifi-hal-mock_intermediates’: No such file or directory
Starting build with ninja
ninja: Entering directory `.'
[ 0% 14/48263] Lex: aidl <= system/tools/aidl/aidl_language_l.ll
FAILED: /bin/bash -c "prebuilts/misc/linux-x86/flex/flex-2.5.39 -o/home/xuanan/android/lineage/out/host/linux-x86/obj/STATIC_LIBRARIES/libaidl-common_intermediates/aidl_language_l.cpp system/tools/aidl/aidl_language_l.ll"
flex-2.5.39: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.
Aborted (core dumped)
[ 0% 14/48263] target Java: libprotob...tobuf-java-nano_intermediates/classes)
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
[ …Run Code Online (Sandbox Code Playgroud) wrapper ×10
java ×3
c# ×2
c++-cli ×2
abstraction ×1
adapter ×1
android ×1
build ×1
c ×1
database ×1
footer ×1
listview ×1
managed ×1
mixed-mode ×1
ninja ×1
object ×1
overloading ×1
primitive ×1
python ×1
structuremap ×1
visual-c++ ×1
word-wrap ×1