小编Tho*_*ews的帖子

为什么Class.getAnnotation()要求我进行演员表?

我正在使用Java 1.6.0_25.

我有一个定义的注释:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Resource {
    String value();
}
Run Code Online (Sandbox Code Playgroud)

后来当我使用getAnnotation时:

Resource resource = (Resource)cls.getAnnotation(Resource.class);
Run Code Online (Sandbox Code Playgroud)

编译器和IDE同意我必须转换结果,但getAnnotation在Java 1.5文档中声明为:

public <A extends Annotation> A getAnnotation(Class<A> annotationClass);
Run Code Online (Sandbox Code Playgroud)

由于Resource.class是Class类型,在我看来这意味着cls.getAnnotation(Resource.class)应该返回类型Resource,我应该需要强制转换.

我使用getAnnotation找到的所有示例都没有强制转换,所以我一定做错了.

java

27
推荐指数
1
解决办法
1万
查看次数

Rails:使''show'视图和'edit'视图匹配

使用Rails 2.3.5,Ruby 1.8.7.

是否有任何插件可以让我更容易使我的"显示"和"编辑"和"新"页面具有相同的外观和感觉?我希望能够做以下类型的事情.现在,如果我向模型中添加一个字段,我必须将它添加到edit.html.erb和view.html.erb中.我希望能够相当广泛地指定外观,但我希望"编辑"和"显示"看起来相同(两者之间的例外,也许,但不是很多.)

有没有DRY工具呢?

基本上,我希望能够使我的"edit.html.erb"成为:

<% plugin_form_helper_for @model do |form_helper| %>
  <%= render :partial => 'common_look', :locals => {:helper => form_helper} %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

和show.html.erb是:

<% plugin_show_helper_for @model do |show_helper| %>
  <%= render :partial => 'common_look', :locals => {:helper => show_helper} %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

然后"form_helper"和"show_helper"将实现相同的接口(具有一些分支能力,使两者的布局/外观略有不同.)

ruby-on-rails dry

9
推荐指数
1
解决办法
967
查看次数

具有方法名称和与外部类不同的签名的内部类

我知道如何使这个代码工作,但我很好奇为什么编译器无法弄清楚调用是外部类方法:

public class Example {
    public void doSomething(int a, int b)
    {
    }

    public class Request
    {
        public int a;
        public int b;

        public void doSomething()
        {
            doSomething(a,b); // Error. Fix: Example.this.doSomething(a,b);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有更深层次的设计理由,而不是保护编码员犯错误?

java inner-classes

9
推荐指数
1
解决办法
693
查看次数

Chrome打印错误 - 错误地在页面顶部打印表格标题

(附录:这是Chrome问题631222,已在Chrome版本54.0中修复.*.)

使用Chrome的最新版本(53.0.2785.116),在Windows和Mac上,我们遇到了一个令人讨厌的错误,我们似乎无法解决这个问题.

我们正在寻求不涉及编辑HTML文本的解决方法,因此CSS或Javascript答案可能会这样做.

我们正在获取除第一个之外的页面顶部的文本:

在此输入图像描述

这是段落的叠加,以及稍后在该页面上出现的表的两个不同的表头.(再次打印标题.)

您可以在此处找到完整的示例页面.

当然,我们已经向谷歌报告了这一点,但我们想知道是否有人能想到让我们的客户再次打印的解决方法.我们无法更改HTML,但我们可以更改CSS,或者可能使用Javascript.(例如,删除thead标记似乎可以解决问题,但该解决方案对我们不起作用,因为我们无法更改HTML.)

代码很简单:

<!DOCTYPE html>
<html><head>
<title>Broken Printing</title>
</head>
<body>
<h1>Printing Issue 9/29/2016</h1>
<p>Lorem ipsum for page break</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p>
<p>Lorem ipsum</p> …
Run Code Online (Sandbox Code Playgroud)

html css google-chrome

5
推荐指数
1
解决办法
2939
查看次数

标签 统计

java ×2

css ×1

dry ×1

google-chrome ×1

html ×1

inner-classes ×1

ruby-on-rails ×1