标签: wildcard

在C#泛型中,Java通配符的等价物是什么

我正在开发一个应用程序,我需要调用泛型类的方法,而不关心实例的实际类型.像下面的Java代码:

public class Item<T>{
  private T item;

  public doSomething(){...}
}

...
public void processItems(Item<?>[] items){
 for(Item<?> item : items)
   item.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

当时我很着急,所以我通过使用我需要调用的方法定义一个接口并使泛型类实现它来解决我的问题.

public interface IItem  
{
   void doSomething();
}

public class Item<T> : IItem {
  private T item;

  public void doSomething(){...}
}

...
public void processItems(IItem[] items)
{
 foreach(IItem item in items)
   item.doSomething();
}
Run Code Online (Sandbox Code Playgroud)

这种解决方法工作正常,但我想知道实现相同行为的正确方法是什么.

编辑:

我忘了提到调用者processItems不知道实际的类型.实际上,这个想法是作为参数传递的数组processItems可能包含混合类型.由于在.Net中不可能有这样的数组,因此使用非泛型基类或接口似乎是唯一的方法.

c# generics wildcard

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

在makefile中为一组文件创建规则

我正在编写一个Makefile,我想使用带有通配符的通用规则,比如

%: bkp/%
    cp $< $@
Run Code Online (Sandbox Code Playgroud)

但我希望此规则仅对少数特定文件有效.例如,我想用列表定义变量

file_list = foo.c bar.c zzz.c

并配置规则,使其仅对此变量中列出的文件有效.我怎么做?

makefile wildcard rule

20
推荐指数
2
解决办法
7174
查看次数

在LDAP搜索过滤器/查询中使用通配符

我对AD和LDAP查询的知识非常有限,所以我对如何使用通配符有一个简单的问题.

假设有一个displayName为"ITSM - 问题管理"的对象

我目前使用通配符实现的过滤器是这样的:

(displayName=SEARCHKEYWORD*)
Run Code Online (Sandbox Code Playgroud)

如果用户输入关键字"问题",他将无法找到该对象,因为它需要名称的第一部分,即"ITSM - "

我想在两端实现通配符,如下所示:

(displayName=*SEARCHKEYWORD*)
Run Code Online (Sandbox Code Playgroud)

理想情况下,这将允许输入"问题"并让它搜索"ITSM - 问题管理".但是当你把它放在开头时,通配符似乎不起作用.当我尝试它时,它似乎挂断而不返回任何结果.

关于如何解决这个问题的任何想法或想法?任何意见都将受到高度赞赏.谢谢!

ldap wildcard filter active-directory

20
推荐指数
2
解决办法
10万
查看次数

使用空格的Solr通配符查询

我有一个通配符查询,看起来像:

q=location:los a*
Run Code Online (Sandbox Code Playgroud)

我想要它匹配"洛杉矶"和"洛杉矶alt".像这样的查询:

q=los*
Run Code Online (Sandbox Code Playgroud)

工作得很好,但只要我添加空格我就没有结果.我如何在通配符查询中使用空格?

solr wildcard

20
推荐指数
3
解决办法
2万
查看次数

如何在C#中实现glob

我不知道在StackOverflow上发布你自己的问题答案是否合法,但我看到没有人问过这个问题.我去寻找一个C#Glob并没有找到一个,所以我写了一个其他人可能觉得有用的.

c# glob wildcard

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

Java Generics:通配符捕获误解

阅读Java在线教程我对通配符捕获一无所知.例如:

    import java.util.List;
    public class WildcardError {
     void foo(List<?> i) {
      i.set(0, i.get(0));
     }
    }
Run Code Online (Sandbox Code Playgroud)

为什么编译器不能保持赋值安全?它知道,通过执行例如带有整数列表的方法,它从i.get得到一个Integer值.因此,它尝试将索引0处的Integer值设置为相同的整数列表(i).那么,出了什么问题?为什么要写Wildcard助手呢?

java generics wildcard

19
推荐指数
2
解决办法
6126
查看次数

GNU Make中通配符目标的正确方法

我试图编写一个Makefile与我的源文件和目标文件分开,我似乎无法找到实现这一目标的正确方法.我有两种方法可行,但我希望有人可以指出"正确"的方法来做到这一点.

我的项目被分成一个srcobj文件夹,Makefile与这些文件处于同一级别.

第一种方法使用通配符函数查找源文件,src然后使用文本替换来确定相应的目标文件.

SRC = $(wildcard src/*.cpp)
OBJ = $(SRC:.cpp=.o)

prog: $(OBJ)
       $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -o prog $(patsubst src/,obj/,$(OBJ))

%.o: %.cpp
     $(CC) $(CFLAGS) -c $< -o $(COMPILE)/$(@F)  
Run Code Online (Sandbox Code Playgroud)

这似乎有效,但是,每次运行make prog它都会重新编译所有目标文件.该OBJ变量必须具有src/的所有对象的前面,否则我得到了"没有规则,使目标".从好的方面来说,我可以轻松地使用prog 目标中的patsubst 来指定目标文件.

第二种方法类似,但在OBJ变量上使用vpath和文本替换:

 vpath = %.cpp src
 vpath = %.o obj

 SRC = $(wildcard src/*.cpp)
 OBJ = $(subst src/,,$(SRC:.cpp=.o))
 POBJ = $(patsubst src/,obj/$(SRC:.cpp=.o))

 prog: $(OBJ)
       $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) -o prog $(POBJ)

 %.o: %.cpp
     $(CC) …
Run Code Online (Sandbox Code Playgroud)

makefile wildcard gnu-make target

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

如何在Postgresql中转义下划线

在Postgresql中搜索下划线时,字符的字面使用_不起作用.例如,如果你想搜索该结束了在任何列所有的表_by,这样的事情更改日志或活动信息,例如updated_by,reviewed_by等等,下面的查询工作差不多:

SELECT table_name, column_name FROM information_schema.columns
WHERE column_name LIKE '%_by'
Run Code Online (Sandbox Code Playgroud)

它基本上完全忽略了下划线并返回,就像你搜索了一样LIKE '%by'.这在所有情况下都可能不是问题,但它有可能成为一个问题.如何搜索下划线?

postgresql escaping wildcard postgresql-9.3

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

通配符子域

我知道之前有过一些线索,但我已经尝试了所有建议(我能找到的),到目前为止我没有任何工作......

考虑到这一点,这是我正在尝试做的事情:

首先,我想允许用户发布页面并为每个页面提供他们选择的子域名(例如:user.mysite.com).从我可以收集到的,最好的方法是使用mod_rewrite和.htaccess将user.mysite.com映射到mysite.com/user - 这是正确的吗?

如果这是正确的,有人可以给我明确的指示如何做到这一点?

另外,我在本地进行所有开发,使用MAMP,所以如果有人能告诉我如何设置我的本地环境以相同的方式工作(我读过这个更难),我将非常感激.老实说,我一直在尝试一切无济于事,因为这是我第一次做这样的事情,我完全迷失了.非常感谢您的帮助!

更新: 其中一些答案非常有用,但对于我想到的系统,不能为每个用户手动添加子域.我真正想问的是如何动态地执行此操作,并将wildcard.mysite.com重定向到mysite.com/wildcard-Tumblr的设置方式就是我想要做的完美示例.再次感谢!

subdomain mamp wildcard-subdomain localhost wildcard

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

MySQL通配符为"=" - 有一个

所以,

SELECT * FROM table WHERE col LIKE '%'
Run Code Online (Sandbox Code Playgroud)

将返回一切.是否有查询的通配符

SELECT * FROM table WHERE col = '*'
Run Code Online (Sandbox Code Playgroud)

显然*不起作用,我只是把它放在那里,以表明我想要一个通配符.我选择的列包含1到12之间的整数,我希望能够选择具有特定数字的所有记录,或者选择带有通配符的所有记录.

谢谢,

mysql wildcard

18
推荐指数
3
解决办法
2万
查看次数