删除Firefox中的所有历史记录(删除所有cookie),禁用所有加载项和插件,然后重新启动Firefox.不要去任何地方等待大约10-15分钟.转到选项 - > ...->显示Cookie.您将在google.com域中看到名为PREF的 cookie .
1)有人可以解释这个cookie出现的方式和原因吗?
2)如何摆脱这个?
ps我没有安装任何谷歌桌面应用程序.Firefox google搜索栏也被删除了.
建议并且有时需要表示值(值类)的类来覆盖hashCode(),equals()[和可选toString()]方法.这些方法返回的值取决于类及其超类的所有成员变量或子集.要正确地实现它们,你必须要了解一些关于散列和一点代数和集合理论的理论(不要太多,几乎所有的东西都在这些方法的javadocs和有效的Java形式Josh Bloch中解释.)
在在大多数情况下,此方法的实现遵循模板,IDE(如Eclipse JDT)包含生成它们的工具.但是,工具生成器无法做出任何假设,只使用语言和标准库中提供的构造生成这些方法.因为这些方法通常看起来非常难看.
实现这些方法的另一种方法是使用图书馆像Apache的(公共琅)HashCodeBuilder,EqualsBuilder和ToStringBuilder.使用这些实用程序,可以实现自己的hashCode()和equals()方法,看起来好多了.
我的问题是关于这两种方法的结合.我希望能够自定义Eclipse hashCode()和equals()生成器,以便使用HashCodeBuilder和朋友生成它们.如果不调整JDT,是否可以(以及如何)这样做?只编写将覆盖默认实现的小插件(但不更改JDT代码).
谢谢.
如果函数接受结构类型,则可以定义为:
def doTheThings(duck: { def walk; def quack }) { duck.quack }
Run Code Online (Sandbox Code Playgroud)
要么
type DuckType = { def walk; def quack }
def doTheThings(duck: DuckType) { duck.quack }
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过以下方式使用该功能:
class Dog {
def walk { println("Dog walk") }
def quack { println("Dog quacks") }
}
def main(args: Array[String]) {
doTheThings(new Dog);
}
Run Code Online (Sandbox Code Playgroud)
如果您为我的示例反编译(到Java)scalac生成的类,您可以看到该参数doTheThings是类型的Object,并且实现使用反射来调用参数上的方法(即duck.quack)
我的问题是为何反思?是不是可以只使用匿名和invokevirtual而不是反射?
下面是方法来翻译(执行)的结构型呼叫我的例子(Java语法,但问题是字节码):
class DuckyDogTest {
interface DuckType {
void walk();
void quack();
}
static void doTheThing(DuckType d) {
d.quack(); …Run Code Online (Sandbox Code Playgroud) ListJava中是否存在基于提供的维护顺序的现有实现Comparator?
可以通过以下方式使用的东西:
Comparator<T> cmp = new MyComparator<T>();
List<T> l = new OrderedList<T>(cmp);
l.add(someT);
Run Code Online (Sandbox Code Playgroud)
使得someT被插入,使得在列表中的顺序是根据保持cmp
(关于@andersoj的建议我正在完成我的问题,还有一个请求)
此外,我希望能够按排序顺序遍历列表而不删除元素,即:
T min = Const.SMALLEST_T;
for (T e: l) {
assertTrue(cmp.compare(min, e) >= 0);
min = e;
}
Run Code Online (Sandbox Code Playgroud)
应该通过.
欢迎所有的建议(除了告诉我Collections.sort在无序的完整列表中使用),但是,我更喜欢某些内容java.*或最终,org.apache.*因为此时很难引入新的库.
注意:(UPDATE4)我意识到这种列表的实现性能不足.有两种一般方法:
没有1. CPU缓存未命中问题No 2.在数组中移位元素有问题.
UPDATE2:
TreeSet不起作用,因为它使用提供的比较器(MyComparator)来检查是否相等,并基于它假设元素相等并排除它们.我需要那个比较器只用于排序,而不是"唯一性"过滤(因为元素按其自然顺序不相等)
UPDATE3:
PriorityQueue不能正常工作List(因为我需要),因为没有办法按照"排序"的顺序遍历它,要按排序顺序获取元素,你必须从集合中删除它们.
更新:
我想将以下(java)数据结构序列化为JSON:
class Machine {
String name;
Map<PartDescriptor, Part> parts;
}
class PartDescriptor {
String group;
String id;
hashCode()
equals()
}
class Part {
String group;
String id;
String description;
String compat;
...
...
}
Run Code Online (Sandbox Code Playgroud)
什么是JSON代表一个Machine?
另外(可选),指向JSON到Java序列化器/反序列化器,它将支持您的表示
在Guice 2或3中,存在所谓的辅助/部分注入.有了这个,Guice为我的对象合成工厂实现(实现我的接口),一些构造函数参数由Guice注入,一些是从上下文提供的.
是否有可能以及如何使用Spring做同样的事情?
我用以下方式使用apache ant:
我有项目P1,P2,P3.其中一些项目有模块,假设P2有M1,M2等.所有项目都有自己的ant构建脚本,并且所有项目都必须实现一组预定义目标(build,dist等),脚本需要一些属性在被叫时被定义.让我们说(build.dir.base)
这些模块遵循类似的结构,因此每个模块都有自己的构建文件来实现预定义的目标集,并期望设置一些属性.(比如build.dir.base - 和项目一样)
我还有一个构建所有项目(或子集)的全局ant脚本
在代码中看起来像:
集结all.xml:
<project name="x">
<property name="build.dir.base" location="system.build.base" />
<target name="build">
<echo message="build.dir.base as defined for build-all.xml=${build.dir.base}" />
<subant antfile="build.xml" target="build" inheritAll="false" inheritRefs="false">
<dirset dir="${system.base}" includes="${project-list}" />
<property name="build.dir.base" location="${build.dir.base}" />
</subant>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
build.xml(每个带有模块的项目一个,subant如果项目没有模块,则为no ):
<project name="y">
<property name="build.dir" location="${basedir}/build" />
<target name="build">
<echo message="build.dir.base as defined for project=${build.dir.base}" />
<subant antfile="build.xml" target="build" inheritAll="false" inheritRefs="false">
<dirset dir="project.base" includes="${module-list}" />
<property name="build.dir.base" location="${build.dir.base}/${name}" />
</subant>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
对于具有模块的项目:build.xml(用于模块):
<project name="z">
<property name="build.dir.base" …Run Code Online (Sandbox Code Playgroud) 在他们的公共API中有许多java标准和第三方库,有写入或读取的方法Stream.一个例子是javax.imageio.ImageIO.write()将OutputStream处理过的图像的内容写入其中.另一个例子是iText pdf处理库,它将OutputStream生成的pdf写入其中.第三个例子是AmazonS3 Java API,InputStream它将读取它并在S3存储中创建文件.
当你想要结合其中两个时,问题就会出现问题.例如,我有一个图像BufferedImage,我必须用它ImageIO.write来推动结果OutputStream.但是,正如S3所要求的那样,没有直接的方法将其推送到Amazon S3 InputStream.
有很多方法可以解决这个问题,但这个问题的主题是使用ByteArrayOutputStream.
后面的想法ByteArrayOutputStream是使用一个包含在其中的中间字节数组,Input/Output Stream以便想要写入输出流的人将写入数组并且想要读取的人将读取数组.
我不知道为什么ByteArrayOutputStream不复制它就不允许任何对字节数组的访问,例如,提供一个InputStream可以直接访问它的字节数组.访问它的唯一方法是调用toByteArray(),它将复制内部数组(标准数组).这意味着,在我的图片示例中,我将在内存中拥有三个图像副本:
BufferedImage,array的OutputStream并toByteArray()我制作的副本,所以我可以创建
InputStream.这个设计如何合理?
getInputStream(),实施保持隐藏. ByteArrayOutputStream不管怎样都不适合多线程访问,所以这不可能. 此外,ByteArrayOutputStreamApache的commons-io库(具有不同的内部实现)提供了第二种风格.但两者都具有完全相同的公共接口,无法在不复制的情况下访问字节数组.
我有以下界面:
interface Foo {
void bar(String a, int b);
}
Run Code Online (Sandbox Code Playgroud)
我想Foo.bar反思地调用(在Foo的实现上).但是,参数是在数组中,我不知道它的大小.
以下不起作用:
void gee(Foo someFoo, Method bar, Object[] args) {
bar.invoke(someFoo, args);
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为args编译器将其作为单个参数进行威胁,并且数组不会"扩展"为vararg,而是在一个包含单个元素的数组中(内部)包装,即
@Test
public void varArgTest() {
assertTrue(varArgFoo(new Object[] {1, 2}) == 1);
}
private static <T> int varArgFoo(T... arg) {
return arg.length;
}
Run Code Online (Sandbox Code Playgroud)
我如何Method.invoke()在这种情况下调用,以便将数组作为vararg进行威胁?
或者更一般的问题:当参数在数组中时我如何调用vararg方法我不知道数组的大小直到运行时.
java ×6
ant ×1
collections ×1
cookies ×1
eclipse ×1
eclipse-jdt ×1
firefox ×1
hashcode ×1
io ×1
javascript ×1
json ×1
list ×1
reflection ×1
scala ×1
spring ×1