我写了这个实用功能:
public static <T> List<T> pluck(String fieldName, List list)
throws NoSuchFieldException, IllegalAccessException {
if (list.isEmpty()) {
return new ArrayList<T>();
}
Class c = list.get(0).getClass();
Field f = c.getField(fieldName);
ArrayList<T> result = Lists.newArrayList();
for (Object object : list) {
result.add((T) f.get(object));
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
我从underscore.js复制了这个想法.用例是:
ArrayList<Person> people = new ArrayList<Person>;
people.add(new Person("Alice", "Applebee"));
people.add(new Person("Bob", "Bedmington"));
people.add(new Person("Charlie", "Chang"));
List<String> firstNames = pluck("firstName", people);
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果调用者输入的类型错误,则在调用者尝试从列表中获取对象之前不会抛出任何异常.理想情况下,我想ClassCastException从pluck方法本身抛出一个.但是,我没有看到在运行时访问列表类型的方法.
有没有一些技巧我可以用来确保调用者没有一个无效的列表?
编辑:所以使用我得到的反馈,一个安全的实现将是:
public static <T,F> List<F> pluck(String fieldName, …Run Code Online (Sandbox Code Playgroud) 我想在Ext JS 4中创建一个单例对象.
这是我的代码:
Ext.define('AM.model.Test', {
extend : 'Ext.util.Observable',
singleton : true,
foo : function() {
console.log('log 1');
},
constructor : function() {
}
});
Run Code Online (Sandbox Code Playgroud)
我叫它:
AM.model.Test.foo();
Run Code Online (Sandbox Code Playgroud)
只要我在app.js中定义define,一切正常.当我尝试将此定义移动到'app\model\Test.js'时,我收到此错误:
AM.model.Test is undefined [Break On This Error]
AM.model.Test.foo();
我的代码出了什么问题?
关于这个功能有很多主题,但我似乎无法让它发挥作用.我已经搜索了这个特定的案例,并且有一些链接让我在这里,但是绰绰有神,我似乎无法让他们工作.我唯一能做到的就是以下内容:http: //dl.dropbox.com/u/2238080/a/!old/z.htm, 但正如你所看到的,它不存储盒子的状态是选中.
问候,鲁本
我正在尝试学习如何读取XML文件中的网页数据.这是一个静态HTML页面.我不想要一个Web服务器,我不能使用Ajax.XML文件是本地的(与HTML文件位于同一目录中).我希望这能在Chrome浏览器中运行.
我需要做的是:
我的问题是阅读XML文件.我发现我发现的所有示例只有在运行Web服务器时才有效,我必须避免.
在这个惊人的编辑器(Ace:代码编辑器)上,有一种方法我可以得到这个on change事件,是否有on keydown事件?或者我可以模拟它的黑客攻击?
我正在尝试将用户上传的 csv 文件从浏览器发送到 nodejs 服务器进行处理(文件超过 50 mb,因此页面变得无响应)。为此,我正在使用 XMLHttpRequest。我找不到解决方案。任何帮助表示赞赏。
var csv = document.getElementById('inputFile').files[0];
var request = new XMLHttpRequest();
request.open("POST", "/handleFile", true);
request.setRequestHeader("Content-type", "text/csv");
request.onreadystatechange = function() {
if (request.readyState === XMLHttpRequest.DONE && request.status === 200) {
console.log("yey");
}
}
request.send(csv);
Run Code Online (Sandbox Code Playgroud)
var express = require('express')
var app = express()
var bodyparser = require('body-parser')
app.post('/handleFile', function(req, res) {
console.log(req.body); // getting {} empty object here....
console.log(req);
var csv = req.body;
var lines = csv.split("\n");
var result = [];
var headers = …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用JavaScript屏蔽字符串的一部分。
例如使用正则表达式掩盖信用卡号码的第二和第三部分:
4567 6365 7987 3783 ? 4567 **** **** 37833457 732837 82372 ? 3457 ****** 82372我只想保留前4个数字和后5个字符。
这是我的第一次尝试: /(?!^.*)[^a-zA-Z\s](?=.{5})/g
我有 2 个对象,我需要将一个对象添加到另一个对象。
var loc = {
leftArray: [],
topArray: [],
bottomArray: [],
rightArray: []
}
var obj = {
id: "ce",
icon: "logo/image.png",
name: "CE",
type: "type2",
version: 3.4
}
Run Code Online (Sandbox Code Playgroud)
var obj = {
id: "ce",
icon: "logo/image.png",
name: "CE",
type: "type2",
version: 3.4,
leftArray: [],
topArray: [],
bottomArray: [],
rightArray: []
}
Run Code Online (Sandbox Code Playgroud)
有什么简单的方法可以做到这一点吗?
我已经建立了一个演示,它有 5 个浮动的<div>s 和不同长度的旋转文本。我想知道是否有一种方法可以让 CSS 类处理所有文本的居中,而不管长度如何。目前,我必须为样式表中的每个字符长度创建一个类。这可能会变得太混乱。我还注意到,如果我增加或减少包装的尺寸,偏移量就会被搞砸<div>。
我将通过 jQuery 将这些类添加到 div,但我仍然必须设置每个类以实现跨浏览器兼容性。
.transform3 {
-webkit-transform-origin: 65% 100%;
-moz-transform-origin: 65% 100%;
-ms-transform-origin: 65% 100%;
-o-transform-origin: 65% 100%;
transform-origin: 65% 100%;
}
.transform4 {
-webkit-transform-origin: 70% 110%;
-moz-transform-origin: 70% 110%;
-ms-transform-origin: 70% 110%;
-o-transform-origin: 70% 110%;
transform-origin: 70% 110%;
}
.transform5 {
-webkit-transform-origin: 80% 120%;
-moz-transform-origin: 80% 120%;
-ms-transform-origin: 80% 120%;
-o-transform-origin: 80% 120%;
transform-origin: 80% 120%;
}
.transform6 {
-webkit-transform-origin: 85% 136%;
-moz-transform-origin: 85% 136%;
-ms-transform-origin: 85% …Run Code Online (Sandbox Code Playgroud) 我正在阅读教程中的线程同步和等待/通知构造.它说明了这一点
当调用wait时,线程释放锁并暂停执行.在将来的某个时间,另一个线程将获取相同的锁并调用Object.notifyAll,通知等待该锁的所有线程发生了重要的事情.
在第二个线程释放锁之后的一段时间,第一个线程重新获取锁并通过从等待调用返回来恢复.
AFAIK,如果有多个线程可以在第一个线程被唤醒时竞争锁定,那么notify它们中的任何一个都可以拥有该对象的锁定.我的问题是,如果第一个线程本身重新获取锁,它是否必须从synchronized方法的开头全部开始(这意味着它再次在while循环检查wait()条件之前执行代码)或者它只是暂停wait()在线?
// Does the waiting thread come back here while trying to own the
// lock (competing with others)?
public synchronized notifyJoy() {
// Some code => Does this piece of code gets executed again then in case
// waiting thread restarts its execution from the method after it is notified?
while (!joy) {
try {
// Does the waiting thread stay here while trying to re-acquire
// the lock?
wait(); …Run Code Online (Sandbox Code Playgroud) javascript ×7
html ×2
java ×2
jquery ×2
ace-editor ×1
angularjs ×1
credit-card ×1
css ×1
extjs ×1
extjs4 ×1
forms ×1
generics ×1
mask ×1
node.js ×1
reflection ×1
regex ×1
singleton ×1
transform ×1
wait ×1
xml ×1