目前我有一个基于给定String充当工厂的方法.例如:
public Animal createAnimal(String action)
{
if (action.equals("Meow"))
{
return new Cat();
}
else if (action.equals("Woof"))
{
return new Dog();
}
...
etc.
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是在类列表增长时避免整个if-else问题.我想我需要有两个方法,一个将字符串注册到类,另一个根据操作的字符串返回类.
在Java中这样做的好方法是什么?
我正在尝试使用此SO问题作为参考从URI启动Android应用程序.
我有一个清单文件,其中包含以下声明的活动:
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http" android:host="example.com" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用http://example.com链接启动MainActivity .我的问题是我得到了警告
"exported activity does not require permission"
Run Code Online (Sandbox Code Playgroud)
我已经查看了报告此相同警告的其他SO问题,并且所有解决方案似乎都不起作用.
如何正确编写活动intent-filter以避免警告?
谢谢
我已经更新了Android SDK的r20并启动了9补丁工具.
似乎有一个新功能 - 保持控制并单击添加布局边界,称为红色像素.
我看了一下文档,但似乎已经过时了.
我的问题是,使用的布局边界是什么以及使用它们的最佳方式是什么?
谢谢.
我有以下代码:
private HashMap<Class<?>, HashMap<Entity, ? extends Component>> m_componentStores;
public <T extends Component> T getComponent(Entity e, Class<T> exampleClass)
{
HashMap<Entity, ? extends Component> store = m_componentStores.get(exampleClass);
T result = (T)store.get(e);
if (result == null)
{
throw new IllegalArgumentException( "GET FAIL: "+e+" does not possess Component of class\nmissing: "+exampleClass );
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
当我编译时,它显示T result = (T)store.get(e)有一个未经检查的强制转换.
Type safety: Unchecked cast from capture#2-of ? extends Component to T
Run Code Online (Sandbox Code Playgroud)
为防止出现此警告,我错过了什么?
我想代理Android模拟器的网络流量.
我似乎无法让它发挥作用.
我的模拟器使用以下方式启动:
emulator @Nexus_5X_API_23 -http-proxy 10.0.1.17:8888
Run Code Online (Sandbox Code Playgroud)
IP和端口指向Charles在"帮助"菜单中报告的内容.
已安装SSL证书.我可以打开模拟器浏览器,Charles向我显示所有流量.浏览器照常更新.
到目前为止一切似乎都很好
现在我尝试运行我的应用程序.我的第一个网络电话通过查尔斯成功通过.响应返回,Charles显示它.但是,响应未成功传递给应用程序.
我在错误回调中设置了一个断点,我可以看到com.android.volley.NoConnectionError是由哪个引起的java.io.IOException: unexpected end of stream on Connection.
为什么Charles没有将结果正确地传回给应用程序?
HttpHost httpproxy = new HttpHost("192.168.0.101", 8888, "http");
httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,httpproxy);
Run Code Online (Sandbox Code Playgroud)
这似乎不正确 - 我错过了什么?
Java Todo List教程中使用的H2数据库如下:
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
Run Code Online (Sandbox Code Playgroud)
如何修改配置文件以使用持久数据库而不是内存中版本.我是否需要设置完全独立的数据库,还是可以修改db.default.url属性?
我正在玩Play!2.0.3.
我正在通过Kotlin为Android开发者探索Kotlin .最初的步骤之一是使用Convert Java File to Kotlin File以查看Java和Kotlin文件的比较方式.
我很好奇这个功能是如何工作的.
该工具是否从Java输入创建抽象语法树然后转换为Kotlin?或者做得更简单?
抬起头来:我正在从记忆中写下一些内容,所以我可能会有一些不正确的概念.
Java具有编写匿名函数的能力.当您拥有某种事件的侦听器接口时,这非常有用.举个例子:
button.setOnClickListener(new View.OnClickListener(View v) {
@Override
public void onClick(View v) {
// handle the action here
}
});
Run Code Online (Sandbox Code Playgroud)
匿名监听器将被编译为类似于的类OnClickListener$1.class.这是Java语言的基础设计决策.一切都是对象,甚至是匿名函数.
当您想要编写功能更强大的代码库时,这就成了一个问题.大量的匿名类会创建一个大的类计数,这在Android等受限平台上可能会出现问题.
在Kotlin中,从源代码的角度来看,函数更加一流.我的问题是,Kotlin是否比Java使用匿名类更有效地将这些函数编译为字节代码,还是会遇到与Java中的大类计数相同的问题?
谢谢,
说有一个清单.列表中的每个项目都有唯一的ID.
List [5, 2, 4, 3, 1]
Run Code Online (Sandbox Code Playgroud)
当我从此列表中删除项目时,项目中的唯一ID随之而来.
List [5, 2, 3, 1]
Run Code Online (Sandbox Code Playgroud)
现在说我想在列表中添加另一个项目,并为其提供最低的唯一ID.
在向列表中添加新项目时,获取最低唯一ID的最简单方法是什么?
这里有限制:如果我在删除项目时没有重新分配另一个项目的唯一ID,我更喜欢它.
我意识到,如果我在删除4时将唯一ID 5重新分配给唯一ID 4,那么很容易找到唯一ID.然后我可以获得列表的长度(5)并创建具有该编号的唯一ID的新项目.
那么还有另一种方法,那就是不涉及遍历整个列表?
编辑:
语言是java,但我想我正在寻找一种通用算法.
我有json发布数据与下面的模板
{
"themeId" : JSONString,
"themeName" : JSONString,
"tables" : [{
"tableName" : JSONString,
"records" : [{
"recordVersion" : JSONString,
"tableItems" : []
}]
}]
}
Run Code Online (Sandbox Code Playgroud)
在Java方面,我有这样的REST API:
@POST
@Path("/{themeId}")
@Consumes({MediaType.APPLICATION_JSON})
public Response postTheme( @PathParam("themeId") String themeId, ThemeDictionary dictionary) throws InterruptedException {
//code to handle
}
Run Code Online (Sandbox Code Playgroud)
当发布数据小于2 MB但如何处理大于2 MB的数据大小时,它工作正常.
问题
1)我应该加入分页.
2)如果我把json分成两半,那么每一半都不是有效的json.那么,我应该接受字符串并在服务器端连接吗?
3)是否有任何好的例子来处理这种情况
4)寻找可以处理大小小于或大于2 MB的json数据的方法