我有一个参数化的界面,以多种不同的方式实现.在运行时,我需要弄清楚,给定一个实现该接口的任意对象,接口的实际类型参数是什么.
这是一个解释问题的片段,以及解决问题的中途尝试(也在ideone.com上):
import java.util.*;
import java.lang.reflect.*;
interface Awesome<X> { }
class Base<E> implements Awesome<Set<E>> { }
class Child extends Base<List<Integer>> { }
class AwesomeExample {
public static void main(String[] args) {
Awesome<Set<List<Integer>>> x = new Child();
System.out.println(
((ParameterizedType)
Child.class.getGenericSuperclass()
).getActualTypeArguments()[0]
);
// prints "java.util.List<java.lang.Integer>"
System.out.println(
((ParameterizedType)
Base.class.getGenericInterfaces()[0]
).getActualTypeArguments()[0]
);
// prints "java.util.Set<E>"
investigate(x);
// we want this to print "Set<List<Integer>>"
}
static void investigate(Awesome<?> somethingAwesome) {
// how to do this?
}
}
Run Code Online (Sandbox Code Playgroud)
看起来在运行时有足够的泛型类型信息来推断:
Child extends Base<List<Integer>>Base<E> …我最初正在研究开发自己的背景去除算法,但看起来流行的文档格式DjVu有自己的前景/背景分离功能,如果我只能理解如何使用它.
引用DjVu文档:
DjVu有3种基本的"模式":
- DjVuText - 黑白(双色)文档
- DjVuPhoto - 连续色调图像,如照片,扫描图形艺术等.
- DjVuLayered - 彩色文档,如杂志,目录,历史文档等.
使用DjVuLayered模式压缩到DjVu 将生成30KB到100KB之间的文件,其中5到40KB将用于前景层,其余用于背景和图片.
对于软件集成:
DjVuLibre包括一个独立的查看器,一个浏览器插件(用于Mozilla,Firefox,Konqueror,Netscape,Galeon和Opera),以及命令行工具(解码器,编码器,实用程序).
有关如何使用DjVu工具分离给定扫描文档的背景和前景的任何想法?
Dia是用于UML建模的优秀开源工具.我目前正在使用它绘制ER图.但Dia Dia的主页有关于Dia" Dia受到商业Windows程序'Visio'的启发,尽管更多是针对休闲用途的非正式图表".Dia是非常光滑的工具,我用它来为我的数据库模式设计ER图,但上面的描述与我对Dia的看法相矛盾.专业ER和休闲ER ??是否有任何设定标准.ER只是一个符号,我们的理解不是它或我错过了什么?
如何使用Neo4j API找到特定节点.当我审阅文档时,我得到了一些代码来获取所有节点但是如果我有一个名为"XYZ"的节点,我想知道如何只获取该特定节点.
我有一个带有一些编码问题的Struts2应用程序.我的JSP页面显示2个表单; 当我发送第一个(一个简单的常规表单,重新加载整页),非标准字符,如á或ñ正确发送和显示.然而,当我做的第二形式(其通过AJAX发送)是相同的,该数据被破坏(Ãí,Ã!等等).
main.jsp中:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
...
<s:head theme="ajax"/>
</head>
<body>
<!-- This form is sent via regular HTTP request -->
<s:form theme="simple" enctype="multipart/form-data">
<s:textfield key="field1" name="var1"/>
<s:submit key="send" action="SAVE_ACTION"/>
</s:form>
<div id="ajaxContainer">
<jsp:include file="ajax-part.jsp"/>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Ajax的part.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="s" …Run Code Online (Sandbox Code Playgroud) 当我使用XMLSerializer时,我收到了第一次机会异常,
XMLSerializer xml = new XMLSerializer(typeof(A))
Run Code Online (Sandbox Code Playgroud)
mscorlib.dll中出现"System.IO.FileNotFoundException"类型的第一次机会异常
附加信息:无法加载文件或程序集'A.XmlSerializers,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.该系统找不到指定的文件.
没关系,但调试时很烦人.是什么原因?
存储c结构的常用方法是NSArray什么?优点,缺点,内存处理?
值得注意的是,有什么之间的区别valueWithBytes和valueWithPointer -由Justin和鲶鱼下面提出.
这是 Apple valueWithBytes:objCType:对未来读者讨论的链接 ......
对于一些横向思考和更多关注性能,Evgen提出了STL::vector在C++中使用的问题.
(这引发了一个有趣的问题:是否有一个快速的c库,不是STL::vector很轻,但更轻,允许最小的"整理数组处理"......?)
那么原来的问题......
例如:
typedef struct _Megapoint {
float w,x,y,z;
} Megapoint;
Run Code Online (Sandbox Code Playgroud)
那么:在一个NSArray成语中存储一个人自己的结构的正常,最好,惯用的方式是什么?你如何处理那个成语中的记忆?
请注意,我特意寻找存储结构的通常习惯用法.当然,人们可以通过创建一个新的小班来避免这个问题.但是,我想知道实际将结构放入数组的常用习惯,谢谢.
顺便说一句,这可能是NSData的方法吗?不是最好的......
Megapoint p;
NSArray *a = [NSArray arrayWithObjects:
[NSData dataWithBytes:&p length:sizeof(Megapoint)],
[NSData dataWithBytes:&p length:sizeof(Megapoint)],
[NSData dataWithBytes:&p length:sizeof(Megapoint)],
nil];
Run Code Online (Sandbox Code Playgroud)
BTW作为参考点,感谢Jarret Hardie,以下是如何存储CGPoints和类似的NSArray:
NSArray *points = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(6.9, 6.9)],
[NSValue valueWithCGPoint:CGPointMake(6.9, 6.9)],
nil];
Run Code Online (Sandbox Code Playgroud)
我的应用程序需要打开图库并选择要裁剪的图像.我将目标大小设置为值(87%*screenWide).现在,出现了问题.在大屏幕设备中,图库无法返回裁剪后的图像,日志显示"!!! FAILED BINDER TRANSACTION !!!".在大多数设备中,没关系.
任何人都可以帮我吗?谢谢!
我使用Intent.ACTION_GET_CONTENT来裁剪,并设置outputX,outputY等.裁剪图像的例行程序.
我的存储库中抛出了一系列非常奇怪的错误.未找到或更改行,2个更新中的1个失败...没有任何意义.
好像我的DataContext实例正在被缓存......没有任何意义,我正在考虑职业生涯.
然后我注意到使用Ninject使用依赖注入传递了DataContext实例(这是我第一次使用DI ...).我撕掉了依赖注入,一切都恢复了正常.即刻.
所以依赖注入是个问题,但我仍然不知道为什么.我猜测Ninject正在缓存注入的DataContext.
它是否正确?
Ninject绑定如下:
Bind<IPupilBlockService>().To<SqlPupilBlockService>()
.WithConstructorArgument("db", new dbDataContext());
Run Code Online (Sandbox Code Playgroud) 如果我构建我的iPhone应用程序并且Xcode显示编译时警告,如果我将其提交到App Store,它会被拒绝吗?
image ×2
iphone ×2
java ×2
.net ×1
ajax ×1
android ×1
app-store ×1
automation ×1
background ×1
c# ×1
cocoa ×1
crop ×1
datacontext ×1
dia ×1
document ×1
dojo ×1
encoding ×1
generics ×1
graph ×1
interface ×1
lifecycle ×1
neo4j ×1
ninject ×1
nsarray ×1
objective-c ×1
reflection ×1
struct ×1
struts2 ×1
uml ×1
utf-8 ×1
xcode ×1
xml ×1