我有两个枚举:
.button_signup{
background:url('http://localhost/helloworld/images/signup.png ' ) no-repeat;
height:40px;
width:100px;
border:0;
}
<?php $id = 1; ?>
<form action="<?php echo base_url('log_c/signup/' . $id); ?>" method="post" >
我希望能够编写一个函数,该函数接收以枚举为键的映射:
$config['base_url'] = '';
我弄清楚如何做的唯一方法如下:
enum Country { US, etc }
enum Language { EN, etc }
这些都不是我所允许的参数的超级特定。(1)通过使它成为Enum的子类而做得最好,但是复杂化了很多逻辑(我在这里大大简化了)。 (3)我必须做大量的下游铸造,我觉得这通常是不好的做法。
我觉得我错过了一些相当明显的东西。
我也知道我可以使用不同的参数编写两个单独的方法声明,但是有很多重复逻辑,我想将该逻辑抽象为函数并避免重复代码。
答案 0 :(得分:1)
我使用您的选项2:使用泛型类型参数T
。在您的示例中,方法为private
,因此您可以完全控制哪些方法可以委派给checkMap
,因此不必如此关注使用不适当密钥类型的委托。
答案 1 :(得分:0)
你可以使用一个界面 - 让国家和语言实现一些虚构的界面并在方法声明中使用它:
interface Dummy{}
enum Country implements Dummy {...}
enum Language implements Dummy {...}
private checkMap(Map<Dummy, Long> map) {...}