这是一个测试类:
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
public class TestAnnotations {
@interface Annotate{}
@Annotate public void myMethod(){}
public static void main(String[] args) {
try{
Method[] methods = TestAnnotations.class.getDeclaredMethods();
Method m = methods[1];
assert m.getName().equals("myMethod");
System.out.println("method inspected ? " + m.getName());
Annotation a = m.getAnnotation(Annotate.class);
System.out.println("annotation ? " + a);
System.out.println("annotations length ? "
+ m.getDeclaredAnnotations().length);
}
catch(Exception e){
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的输出:
method inspected ? myMethod
annotation : null
annotations length : 0
Run Code Online (Sandbox Code Playgroud)
我错过了通过反思使注释可见?
我是否需要一个注释处理器,即使只是检查它们的存在?
我正在使用http://plugins.jquery.com/project/datepick上的jquery datepicker插件和datepicker验证插件.
<script id="frmValidation" type="text/javascript">
$(document).ready(function(){
var validator = $("#frmTest").validate({
rules:{
fname: "required",
dobPicker: "required"
},
messages:{
fname: "Please enter a name",
dobPicker: "Select a date"
},
});
$('#dobPicker').datepick();
$.datepick.setDefaults({showOn: 'both', dateFormat: 'dd-mm-yy', yearRange:'1900:2010'});
});
</script>
Run Code Online (Sandbox Code Playgroud)
文件正文如下:
<form id="frmTest" action="" method="post">
<div id="error-list"></div>
<div class="form-row">
<span class="label"><label for="fname">Name</label></span>
<input type="text" name="fname" />
</div>
<div class="form-row">
<span class="label"><label for="dobPicker">DOB</label></span>
<input type="text" id="dobPicker" name="dobPicker" style="margin-left: 4px;"/>
</div>
<div class="form-row">
<input type="submit" name="submit" value="submit"/>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
表单第一次验证,但是日期选择器的错误消息不会立即消失,但是如果第二次选择日期,它就会消失.任何帮助,使其第一次选择日期,将不胜感激
我有一个包含16个字母数字字符的字符串,例如F4194E7CC775F003.我想将其格式化为F419-4E7C-C775-F003.
我试过用
string.Format("{0:####-####-####-####}","F4194E7CC775F003");
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为它不是数值.
所以我想出了以下内容:
public class DashFormatter : IFormatProvider, ICustomFormatter
{
public object GetFormat(Type formatType)
{
return this;
}
public string Format(string format, object arg, IFormatProvider formatProvider)
{
char[] chars = arg.ToString().ToCharArray();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < chars.Length; i++)
{
if (i > 0 && i % 4 == 0)
{
sb.Append('-');
}
sb.Append(chars[i]);
}
return sb.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
并通过使用
string.Format(new DashFormatter(), "{0}", "F4194E7CC775F003");
Run Code Online (Sandbox Code Playgroud)
我能够解决问题,但是我希望有更好/更简单的方法来解决它?也许一些LINQ魔术?
谢谢.
好吧,所以说你在红宝石中有一个非常大的范围.我想找到一种方法来获得范围中的最大值.
范围是独占的(由三个点定义),这意味着它不包括结果中的结束对象.它可以由整数,字符串,时间,还是真的是响应任何物体#<=>
和#succ
.(这是Range中开始/结束对象的唯一要求)
以下是独家范围的示例:
past = Time.local(2010, 1, 1, 0, 0, 0)
now = Time.now
range = past...now
range.include?(now) # => false
Run Code Online (Sandbox Code Playgroud)
现在我知道我可以做这样的事情来获得最大值:
range.max # => returns 1 second before "now" using Enumerable#max
Run Code Online (Sandbox Code Playgroud)
但这需要花费很多时间来执行.我也知道我可以从最终对象中减去1秒.但是,该对象可能不是Time,甚至可能不支持#-
.我更愿意找到一个有效的通用解决方案,但我愿意将特殊案例代码与一般解决方案的后备结合起来(稍后会详细介绍).
如上所述,使用Range#last
也不起作用,因为它是一个独占范围,并且不包括其结果中的最后一个值.
我能想到的最快的方法是:
max = nil
range.each { |value| max = value }
# max now contains nil if the range is empty, or the max value
Run Code Online (Sandbox Code Playgroud)
这类似于Enumerable#max
(Range继承),除了它利用每个值将大于前一个的事实,因此我们可以跳过使用#<=>
来比较每个值与前一个(方式Range#max
)保存一个一点点时间.
我正在考虑的另一种方法是为常见的ruby类型(如Integer,String,Time,Date,DateTime)提供特殊的案例代码,然后使用上面的代码作为后备.它有点难看,但是当遇到这些对象类型时可能效率更高,因为我可以使用减法Range#last
来获得最大值而无需任何迭代.
任何人都可以想到比这更有效/更快的方法吗?
按下p
当前行dit
旁边的东西,删除html标签内的东西.如何在html标签内粘贴一些东西?
Nor here
<p>I want to paste something here</p>
Not here
Run Code Online (Sandbox Code Playgroud) 我希望能够创建模态对话框,例如
close: function() {
$(this).remove();
}
Run Code Online (Sandbox Code Playgroud)
默认选项,无需在对话框创建时指定,但以某种方式在一个地方覆盖这些参数.
这可能吗?
我有以下字典 - >
key : (time,edge_list)
Run Code Online (Sandbox Code Playgroud)
现在我想将所有时间值增加1.我该怎么做?
dict_list = dict(key:(time+1,edge_list) for key:(time,edge_list) in dict_list)
Run Code Online (Sandbox Code Playgroud) 我过去尝试过以下方法:
<?php
set_time_limit(0);
$_SERVER['PATH_INFO'] = 'cron/controller/index';
$_SERVER['REQUEST_URI'] = 'cron/controller/index';
require_once('index.php');
?>
Run Code Online (Sandbox Code Playgroud)
并将其放在codeigniter安装目录中的一个文件中,将其命名为cron.php,然后通过以下方式调用它:
php /home/[username]/public_html/my_project/cron.php
Run Code Online (Sandbox Code Playgroud)
如果我在浏览器中输入cron.php的URL,它可以正常工作,但无论何时通过CRON运行我都会收到404错误.将以下代码放在show_404()
CodeIgniter 的函数中
function show_404($page = '')
{
print_r($_SERVER);
echo "\n\n";
die ($page);
}
Run Code Online (Sandbox Code Playgroud)
导致以下输出通过电子邮件发送给我:
Array
(
[SHELL] => /bin/sh
[MAILTO] => me@gmail.com
[USER] => [me]
[PATH] => /usr/bin:/bin
[PWD] => /home/[me]
[SHLVL] => 1
[HOME] => /home/[me]
[LOGNAME] => [me]
[_] => /usr/bin/php
[PHP_SELF] =>
[REQUEST_TIME] => 1266479641
[argv] => Array
(
[0] => /home/[me]/public_html/my_project/cron.php
)
[argc] => 1
[PATH_INFO] => cron/controller/index
[REQUEST_URI] => …
Run Code Online (Sandbox Code Playgroud) 在phpmyadmin中,它可以看到数据库磁盘使用情况.我想知道Oracle SQL开发人员是否有这样的事情.谢谢!
php ×2
annotations ×1
c# ×1
codeigniter ×1
cron ×1
formatting ×1
java ×1
jquery ×1
jquery-ui ×1
optimization ×1
oracle ×1
performance ×1
python ×1
range ×1
reflection ×1
ruby ×1
string ×1
vim ×1