问题列表 - 第15535页

Java:使用反射注入字段的最快方法是什么?

假设,我有很多类,它们是使用Java反射构造的(出于某种原因).现在我需要将值后注入到字段中,这些字段用注释@PostInject.

public class SomeClass {
  @PostInject
  private final String someString = null;

  public void someMethod() {
    // here, someString has a value.
  }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:使用反射设置字段的快速方法什么?
请记住,我需要经常在很多课程上这样做,这就是性能相关的原因.

这个伪代码显示了我通过直觉做的事情:

  • 得到班上的所有领域
    clazz.getFields();
  • check,用@PostInject注释
    eachField.getAnnotation(PostInject.class);
  • 使这些字段可访问
    eachAnnotatedField.setAccessible(true);
  • 将它们设置为某个值
    eachAnnotatedField.set(clazz, someValue);

我害怕获得所有领域是最慢的事情.
当我从一开始就知道它时,我可以得到一个领域吗?

注意:我不能让这些类实现一些接口,这将允许使用方法设置字段.我需要POJO.

注2:为什么我要进行现场注入:从API用户的角度来看,必须能够使用最终字段.此外,当API先验地不知道字段的类型和数量时,不可能使用接口实现字段初始化.

注2b:从用户的角度来看,最终合同没有被打破.它保持最终.首先,字段初始化,然后无法更改.顺便说一句:有很多API使用这个概念,其中一个是JAXB(JDK的一部分).

java reflection annotations code-injection pojo

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

Windows上的mono AOT给了我一个DLL

我在Windows上,我正在提前尝试Main.exe使用Mono C#编译器进行编译gmcs(也尝试过mcs).

>mono --aot Main.exe
Mono Ahead of Time compiler - compiling assembly C:\test\Main.exe 
Code: 21   Info: 4 Ex Info: 8 Class Info: 30 PLT: 2 GOT 
Info: 6 GOT Info Offsets: 8 GOT: 12 
Executing the native assembler: as C:\DOCUME~1\MigueldeIcaza\LOCALS~1\Temp\mono_aot_D2 ID2U -o C:\DOCUME~1\MigueldeIcaza\LOCALS~1\Temp\mono_aot_D2ID2U.o 
Executing the native linker: gcc -shared --dll -mno-cygwin -o C:\test\Main.exe.dll C:\DOCUME~1\MigueldeIcaza\LOCALS~1\Temp\mono_aot_D2ID2U.o 
Compiled 2 out of 2 methods (100%) Methods without GOT slots: 2 (100%) 
Direct calls: 0 (100%) JIT time: …
Run Code Online (Sandbox Code Playgroud)

windows mono aot

0
推荐指数
1
解决办法
3534
查看次数

有没有办法限制MKMapView的最大缩放级别?

问题是 - 有没有办法限制MKMapView的最大缩放级别?或者有没有办法跟踪用户何时缩放到没有可用地图图像的级别?

iphone zoom mkmapview

34
推荐指数
6
解决办法
3万
查看次数

如何使用PHP从MySQL数据库存储和检索图像?

如何在MySQL中插入图像然后使用PHP检索它?

我在这两个领域的经验都很有限,我可以用一些代码让我开始搞清楚这一点.

php mysql database blob

58
推荐指数
6
解决办法
28万
查看次数

根据值删除字典中的项目

我有一个Dictionary<string, string>.

我需要在该字典中查看是否存在基于来自其他地方的输入的值,如果存在则将其删除.

ContainsValue只是说true/false而不是该项的索引或键.

救命!

谢谢

编辑:刚发现这个 - 你怎么看?

var key = (from k in dic where string.Compare(k.Value, "two", true) ==
0 select k.Key).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

编辑2:我也只是敲了这个可能有效

foreach (KeyValuePair<string, string> kvp in myDic)
{
    if (myList.Any(x => x.Id == kvp.Value))
        myDic.Remove(kvp.Key);
}
Run Code Online (Sandbox Code Playgroud)

.net c# linq dictionary

53
推荐指数
2
解决办法
9万
查看次数

rsync:如何配置它以在服务器上创建目标目录?

我想rsync从本地计算机到服务器.在不存在的rsync目录上,我想首先在服务器上创建该目录.

我怎样才能做到这一点?

rsync

127
推荐指数
6
解决办法
14万
查看次数

Linux应用程序可以在Android中运行吗?

Android基于Linux; 可以在Android上运行本机Linux应用程序吗?

linux android

48
推荐指数
5
解决办法
10万
查看次数

如何减少文本框的宽度?

我可以在不使用类的情况下减少文本框宽度吗?

<input type="text" maxlength="5" style="3px"/>
Run Code Online (Sandbox Code Playgroud)

html maxlength inputbox

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

通过.NET调用COM对象的手动方式

是否有手动方式在.NET中调用GAC中的COM对象,而不将其添加为引用?

我问的原因是我只知道如何在C#中编码并想要调用.NET COM对象并测试其CMO调用是否可见,但显然您无法将.NET COM对象添加到.NET程序集中!因为你必须引用它,所以我想知道如果它通过c#代码手动在GAC中注册,你可以调用它吗?

c# com com-interop

10
推荐指数
1
解决办法
5475
查看次数

需要Django formsets

如何制作django formset中的所有表单?我试图在cleaned_data覆盖formset的clean()方法中验证所有字段的存在,但它只是静默失败而没有显示任何错误.

谢谢!

源代码:

class BaseScheduleForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(BaseScheduleForm, self).__init__(*args, **kwargs)
        self.fields['day'].widget = forms.HiddenInput()
        self.fields['user'].widget = forms.HiddenInput()

    class Meta:
        model = Schedule

    def clean_end_time(self):
        start_time = self.cleaned_data.get('start_time')
        end_time = self.cleaned_data['end_time']

        if start_time and end_time:
            if end_time <= start_time:
                raise forms.ValidationError("End time must be later that start time.")
        return end_time

class BaseScheduleFormset(forms.models.BaseModelFormSet):

    def __init__(self, *args, **kwargs):
        super(BaseScheduleFormset, self).__init__(*args, **kwargs)
        for number, weekday in enumerate(WEEKDAYS):
            self.forms[number].day_name = weekday[1]

    def clean(self):
        raise forms.ValidationError('You must specify schedule for the whole …
Run Code Online (Sandbox Code Playgroud)

python forms django formset

5
推荐指数
0
解决办法
1136
查看次数